脚本宝典收集整理的这篇文章主要介绍了

Java锁相关知识总结

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。

锁的种类:

synchronize自动锁(最常用) 可以给类、方法、代码块加锁 lock手动锁,只能锁代码块儿,且需要手动加锁解锁,忘记解锁会造成死锁 volatile轻量级锁,不会造成线程阻塞,只能修饰变量,且只能保证变量的修改可见性,无法保证原子性 

解决死锁的方法:

1)尽量使用tryLock(long timeout, TimeUnit unit)的方法(ReentrantLockReentrantReadWriteLock),设置超时时间,超时可以退出防止死锁。  2)尽量使用java.util.concurrent(jdk 1.5以上)包的并发类代替手写控制并发,比较常用的是ConcurrentHashMapConcurrentLinkedQueueAtomicBoolean等等,实际应用中java.util.concurrent.atomic十分有用,简单方便且效率比使用Lock更高  3)尽量降低锁的使用粒度,尽量不要几个功能用同一把锁  4)尽量减少同步的代码块 

悲观锁与乐观锁

悲观锁用于线程冲突率高的场景,用提前加锁保证线程安全 乐观锁用于线程冲突率底的场景,用修改前后版本号是否一致保证线程安全 

未完待续

总结

以上是脚本宝典为你收集整理的

Java锁相关知识总结

全部内容,希望文章能够帮你解决

Java锁相关知识总结

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过