LockSupport
LockSupport
定义了一组公共静态方法,这些方法提供了最基本的线程阻塞和唤醒功能,是构建同步组件的基础工具,它主要有两类方法:
以
park
开头的方法:阻塞当前线程以
unpark
开头的方法:唤醒被阻塞的线程
void park()
阻塞当前线程,只有当前线程被中断或其他线程调用unpark(Thread thread),才能从park()方法返回
void parkNanos(long nanos)
阻塞当前线程,最长不超过nanos纳秒,返回条件在park()的基础上增加了超时返回
void parkUntil(long deadline)
阻塞当前线程,直到deadline这个时间点(从1970年开始到deadline时间的毫秒数)
void unpark(Thread thread)
唤醒处于阻塞状态的thread线程
在JDK1.6中,该类增加了void park(Object blocker)
、void parkNanos(Object blocker, long nanos)
、void parkUntil(Object blocker, long deadline)
方法,相比之前的park方法,多了一个blocker对象,该对象用来标识
当前线程在等待的对象(阻塞对象),主要用来问题排查和系统监控(对线程dump时,可以提供阻塞对象的信息),可以用来代替原有的park方法。
Last updated