Java 并发 锁
时间:2019/6/3 17:37:37
参考:
- 《Java 并发编程实战》
Java 锁#
Java 提供两种锁,默认的加锁机制 synchronized
和 jdk1.5 增加的更灵活的 ReentrantLock
。目前两种锁在性能上没有太大差距。因此应优先选择使用 synchronized
,当需要更加灵活的加锁机制,如等待一段时间、可中断等机制时可以使用 ReentrantLock
。
synchronized#
虚拟机内置属性,虚拟机可以进行优化,虚拟机更可能会基于 synchronized
进行性能优化。
使用 Object
对象的 wait()
notify()
notifyAll()
进行线程间信号传递。
ReentrantLock#
ReentrantLock
实现 Lock
接口,接口定义如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
ReentrantLock
通过使用 Condition
进行线程间信号传递。