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