1、Locks包 类层次结构

如下图:
Lock接口及其实现
1.1 RenntrantLock
其是可重入锁如下图所示:
Lock接口及其实现
运行上图的代码可以知道可以不断锁住没有释放,结果就是线程锁没添加一个lock()数量就多一个。

2、Lock接口方法

如下图:
Lock接口及其实现

3、synchronized和Lock的比较

synchronized
优点:1、使用简单,语义清晰,哪里需要点哪里
2、由JVM提供,提供了多种优化方案(锁粗化、偏向锁、轻量锁)
3、锁的释放由虚拟机完成,不用人工干预,也降低了死锁的可能性
缺点:无法实现一些锁的高级功能如:公平锁、中断锁、超时锁、共享锁等
Lock
-优点:1、所有synchronized的缺点 、
2、可以实现更多的功能,如让synchronized的缺点更多
-缺点:需要手动释放锁unlock,新手使用不当可能造成死锁

相关文章:

  • 2021-09-25
  • 2021-12-13
  • 2021-10-16
  • 2021-12-14
  • 2021-06-19
  • 2020-11-04
猜你喜欢
  • 2021-11-21
  • 2021-09-10
  • 2021-09-22
  • 2021-06-09
  • 2021-06-25
  • 2022-12-23
相关资源
相似解决方案