JVM:线程安全与锁优化

Syschronized和ReentrantLock比较:

ReentrantLock比Syschronized增加了:等待可中断、可实现公平锁、锁可以绑定多个条件等高级功能。

  1. 等待可中断:持有锁的线程长期不释放锁,正在等待的线程可以选择放弃等待,改为处理其他事情,对处理执行时间比较长的同步块有帮助。
  2. 公平锁:多个线程等待同一个锁的时候,必须按照申请锁的时间顺序来依次获得锁,而非公平锁在锁被释放的时候任何一个等待锁的线程都有机会获得锁。Syschronized是非公平的,ReentrantLock默认非公平,但可以通过布尔值构造函数要求使用公平锁。
  3. 锁可以绑定多个条件:一个ReentrantLock对象可以同时绑定多个condition对象。

锁优化:

博客:https://www.cnblogs.com/pacoson/p/5351355.html

https://blog.csdn.net/dfsaggsd/article/details/50556300

你可能感兴趣的:(JVM:线程安全与锁优化)