sychornized和Lock的区别

1.语言层级

sychornized是JVM内置关键字,lock是jdk类。

2.获取方式

sychornized自动获取/释放,lock需要手动lock()或unlock()。

3.释放时机

sychornized方法结束后自动释放,lock需要在finally里手动unlock()。

4.响应中断

sychronized无法响应中断,lock可以通过lockInterruptibly()实现响应中断。

5.非阻塞尝试

lock可以通过tryLock()立即返回布尔值。

6.公平锁

sychornized默认非公平,lock的子类ReentrantLock是公平锁。

7.性能差距

lock性能略高于sychornized,但是lock的代码复杂度会高于sychornized。

sychornized简单自动,大部分场景都是用sychornized,需要中断,公平,超时,多条件时才用lock。

posted @ 2026-02-03 10:36  acccccccccc  阅读(2)  评论(0)    收藏  举报