Synchronized与ReeantLock区别及共同点.pdfVIP

  • 1
  • 0
  • 约1.66千字
  • 约 2页
  • 2026-06-02 发布于北京
  • 举报

synchronized和ReentrantLock的区别

两者的共同点:

1.都是用来协调多线程对共享对象、变量的2.

都是可重入锁,同一线程可以多次获得同一个锁3.

都保证了可见性和互斥性

两者的不同点:

\1.ReentrantLock显式的获得、释放锁,synchronized隐式获得释放锁\2.ReentrantLock可响应中断、

可,synchronized是不可以响应中断的,为处理锁的用性提供了更高的灵活性\3.

ReentrantLock是API级别的,synchronized是JVM级别的

\4.ReentrantLock可以实现公平锁

\5.ReentrantLock通过Condition可以绑定多个条件\6.底层实现不同,synchronized是同步阻塞,使

用的是悲观并发策略,而lock是同步非阻塞,采用的是乐观并发策略\7.Lock是一个接口,而

synchronized是Java中的关键字,synchronized是内置的语言实现。

\8.synchronized在发生异常时,会自动释放线程占有的锁,因此不会导致死锁现象发生;而Lock在发

生异常时,如果没有主动通过unLock()去释放锁,则很可能造成死锁现象,因此使用Lock时需要在

finally

文档评论(0)

1亿VIP精品文档

相关文档