锁的优化

来源:互联网 发布:python获取命令行参数 编辑:程序博客网 时间:2024/06/06 01:29
  • 减少锁持有时间
public synchronized void syncMethod(){    othercode1();    mutextMethod();    othercode2();}

上述代码中,只有第二个方法需要同步,所以需要将锁加载第二个方法中中去

public void syncMethod2(){    othercode1();    synchronized(this){        mutextMethod();    }    othercode2();}
  • 减少锁粒度

    将大对象,拆成小对象,大大增加并行度,例如ConcurrentHashMap的实现

  • 锁分离

    根据功能进行分离,例如ReadWriteLock
    LinkedBlockingQueue的实现,只要操作互不影响,锁就可以分离。

  • 锁粗化
  • 锁消除
原创粉丝点击