[原创]利用同步语句改善并发性能

例如,我们假定类MsLunch有两个实例字段,C1和C2,这两个变量绝对不会一起使用。所有对这两个变量的更新都需要进行同步。

但是没有理由阻止对C1的更新和对C2的更新出现交叉-----这样做会创建不必要的阻塞,进而降低并发性能。

此时,我们没有使用同步方法或者使用和this相关的锁,而是创建了两个单独的对象锁来提供锁。

                            public class MsLunch{

                              private long c1 =0;

                              private long c2=0;

                              private Object lock1 = new Object();

                              private Object lock2 = new Object();

                              public void inc1(){

                                 synchronized(lock1){

                                    c1++;

                                 }

                              }

                              public void inc2(){

                                 synchronized(lock2){

                                    c2++;

                                 }

                              }

                               }

 

posted @ 2017-10-02 23:50  wells163  阅读(136)  评论(0编辑  收藏  举报