- 阻塞和唤醒一个线程,需要用到LockSupport工具类,它定义了一组公共静态方法,提供了最基本的线程阻塞和唤醒功能,使其陈伟构建同步组件的基础工具
- 这些方法中park开头的用来阻塞线程,unpark方法用来唤醒被阻塞的线程。
方法名称 | 描述 |
---|---|
void park() | 阻塞当前线程,调用unpark(Thread thread)方法或者当前线程阻塞就被中断,才能从park()方法返回 |
void parkNanos(long nanos) | 阻塞当前线程,最长不超过nanos纳秒 |
parkUntil(long deadline) | 阻塞当前线程,知道deadline时间(从1970开始到deadline时间的毫秒数 |
void unpark() | 唤醒处于阻塞状态的线程thread |
- 还有park(Object blokcer)、parkNanos(Object blocker, long deadline)、parkUntil(Object blocker, long deadline)3个方法,用于实现阻塞当前线程的功能,其中参数blocker用来标识当前线程在等待的对象(阻塞的对象)。
网友评论