线程中断

线程中断机制

LockSupport类

简介:用于创建锁和其他同步类的基本线程阻塞原语

该类与使用它的每个线程关联一个许可证(在Semaphore类的意义上)。如果许可证可用,将立即返回park,并在此过程中消费;否则可能会阻止。如果尚未提供许可,则致电unpark获取许可(与Semaphore不同,许可证不会累积,最多只有一个)

主要api:park与unpark方法,需要成对使用。

park:除非许可证可用,否则禁用当前线程以进行线程调度。【作用:阻塞线程】

unaprk:如果给定线程尚不可用,则为其提供许可。【作用:解除阻塞线程】

底层调用的是unsafe类,

使用场景:

线程阻塞唤醒的方法

有3种方式

1、使用Object中的wait()方法让线程等待,使用Object中的notify()方法唤醒线程

2、使用JUC包中Condition的await()方法让线程等待,使用signal()方法唤醒线程

3、 LockSupport类可以阻塞当前线程以及唤醒指定被阻塞线程

线程等待唤醒机制