课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > 锁的优化及注意事项
  • 锁的优化及注意事项

    发布:昆明Java培训      来源:达内新闻      时间:2016-07-31

  • 锁的优化及注意事项

    1、提高锁性能的几点建议

    减小锁持有时间、减小锁粒度、读写分离锁替换独占锁、锁分离(不同的操作不同的锁)、锁粗化(锁的粒度太小也不好,会造成线程反复的申请锁)

    2、jdk提供的锁策略

    锁偏向、轻量级锁、自旋锁、锁消除

    3、人手一支笔:ThreadLocal

    ThreadLocal把共享变量编程每个线程的内部变量,只有当前线程访问;

    4、无锁CAS

    CAS的算法过程是这样的:它包含3个参数CAS(V,E,N),V表示要更新的变量,E表示预期的值,N表示新值。仅当V等于E时,才把V更新为N,如果不等,表示有其他的线程做了更新,则当前线程什么都不做。最后,CAS返回当前V的真实值;

    但是CAS也有可能出现问题,即如果一个线程改了值,但是又被另一个线程改了回去,则当前线程会认为其值没有变化过进而对其进行更新,在有的应用可能会出现问题,可以在增加一个时间戳参数来保证;

    推荐文章

上一篇:Java并发包

下一篇:java进阶(三十八)快速排序

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56