LockSupport简介 - omigaw/spring- GitHub Wiki

1. LockSupport简介

LockSupport位于java.util.concurrent.locks包下,该类的方法并不是很多。LockSupport是线程的阻塞原语,用来阻塞线程和唤醒线程。每个使用LockSupport的线程都会与一个许可关联,如果该许可可用,并且可在线程中使用,则调用park()将会立即返回,否则可能阻塞,如果许可尚不可用,则可以调用unpark使其可用。但是注意许可不可重入,也就是说只能调用一次park()方法,否则会一直阻塞。

2. LockSupport方法

  • 阻塞线程
    1. void park()
    2. void park(Object blocker)
    3. void parkNanos()
    4. void parkUntil(long deadline)
    5. void parkUntil(Object blocker,long deadline)
  • 唤醒线程 void unpark(Thread thread):唤醒处于阻塞状态的指定线程。