LockSupport工具类
当需要阻塞或唤醒一个线程的时候,都会使用LockSupport
工具类来完成相应工作。Locksupport
定义了一组的公共静态方法,这些方法提供了最基本的线程阻塞和唤醒功能,而LockSupport也成为构建同步组件的基础工具。
LockSupport
定义了一组以park
开头的方法用来阻塞当前线程,以及unpark(Thread thread)
方法夹唤醒一个被阻塞的线程。
方法名称 | 描述 |
---|---|
void park() |
阻塞当前线程,如果调用unpark(Thread thread) 方法或者当前线程被中断,才能从park() 返回 |
void parkNanos(long nanos) |
阻塞当前线程,最长不超过nanos纳秒,返回条件在park() 的基础上增加了超时返回 |
void parkUntil(long deadline) |
阻塞当前线程,直到deadline时间 |
void unpark(Thread thread) |
唤醒处于阻塞状态的线程thread |
在JDK
1.6中,Locksupport
增加了park(Object blocker)
、parkNanos Object blocker ong nanos)
和parkUntil(Object blocker,fongdeadline)
三个方法,用于实现阻塞当前线程的功能,其中参数blocker是用来标识当前线程在等待的对象该对象主要用于问题排查和系统监控。