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

7 lines
668 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
- lock是jdk中的一接口在使用的时候必须要手动释放锁否则会造成死锁
- sync是一个关键字是通过jvm底层来实现加锁的使用的时候无需手动释放异常时可以自动释放锁不会造成死锁
- lock可以使用interrupt来中断等待但是sync是无法中断的只能等待释放锁
- lock可以通过trylock来知道是否获得锁但是sync不可以
- lock可以通过readwritelock来提高多个线程进行读操作的效率
- sync在底层有一些优化比如适应自旋锁消除锁粗化轻量级锁偏向锁等
- lock使用的是乐观锁的机制sync使用的是悲观锁