Synchronized 和 Lock的区别

Synchronized和lock都是锁能保证代码线程安全,但有些区别,区别如下:

1.原始构成

Synchronized是关键字是JVM层面的,而Lock是具体类,是api层面

2.使用方法

Synchronized不需要用户手动释放锁,当使用完后自动释放。而ReetrantLock需要手动释放锁

3.等待是否可以中断

Synchronized不可以中断,而ReetrantLock可以中断

4.加锁是否公平

Sychronized是非公平锁,而ReetrantLock可以设置(默认为非公平锁)

5.锁判定多个条件

Sychronized不可以判断,而ReetrantLock可以判断条件,指定唤醒线程。

发布了8 篇原创文章 · 获赞 7 · 访问量 212

猜你喜欢

转载自blog.csdn.net/weixin_39475445/article/details/104321193