Java并发包中的锁解析原理
发布时间
阅读量:
阅读量
LockSupport工具类解析
LockSupport是JUC并发包中的一个实用工具类,其核心实现依赖于Unsafe类。该工具类在Unsafe类提供的park()与unpark()方法基础上进行封装与功能扩展,主要应用于线程的阻塞与唤醒操作,具备线程安全特性,其底层机制基于CAS算法实现。从名称即可推测,它属于锁相关功能的支持类,后续各类锁的实现均以它为基础。
park()方法与wait()方法
首先分析wait()方法与Unsafe类中的park()方法之间的关系。LockSupport的park()方法本质上是对Unsafe类中park()方法的封装处理,因此有必要先理解底层实际用于阻塞线程的park()方法实现原理。
Object类中wait()方法的源代码:
public final void wait() throws InterruptedException {
wait(0);
}
public final native void wait(long timeout) throws InterruptedException;
Unsafe类中park()方法的源代码实现:
全部评论 (0)
还没有任何评论哟~
