lock和synchronized有什么区别?【java面试题】

2023-03-22  本文已影响0人  鹤子青云上

目标
掌握 lock 与 synchronized 的区别
理解 ReentrantLock 的公平、非公平锁

理解 ReentrantLock 中的条件变量

lock 与 synchronized 的区别有三个层面

1.不同点
语法层面

2.功能层面

3.性能层面

4.公平锁
公平锁的公平体现

已经处在阻塞队列**中的线程(不考虑超时)始终都是公平的,先进先出

公平锁是指未处于阻塞队列中的线程来争抢锁,如果队列不为空,则老实到队尾等待

非公平锁是指未处于阻塞队列中的线程来争抢锁,与队列头唤醒的线程去竞争,谁抢到算谁的

公平锁会降低吞吐量,一般不用

5.条件变量

代码说明

day02.TestReentrantLock 用较为形象的方式演示
ReentrantLock 的内部结构

上一篇 下一篇

猜你喜欢

热点阅读