Files
Hui-s-notebook/logseq-java/pages/lock和synchronized区别.md
2024-02-02 00:12:49 +08:00

668 B
Raw Blame History

  • lock是jdk中的一接口在使用的时候必须要手动释放锁否则会造成死锁
  • sync是一个关键字是通过jvm底层来实现加锁的使用的时候无需手动释放异常时可以自动释放锁不会造成死锁
  • lock可以使用interrupt来中断等待但是sync是无法中断的只能等待释放锁
  • lock可以通过trylock来知道是否获得锁但是sync不可以
  • lock可以通过readwritelock来提高多个线程进行读操作的效率
  • sync在底层有一些优化比如适应自旋锁消除锁粗化轻量级锁偏向锁等
  • lock使用的是乐观锁的机制sync使用的是悲观锁