Interrupt
interrupt()
是线程类的成员方法,作用是打断线程
与之有关的还有isInterrupted()
和interrupted()
interrupt()
的作用是分情况的
当线程被
join()
、sleep()
、wait()
阻塞的时候
使用此方法,会设置打断标记为false
,并且抛出异常InterruptedException
当线程正在运行的时候
使用此方法,会设置打断标记为true
,但是不会影响线程继续运行
当线程使用
LockSupport.park()
挂起
使用此方法,会设置打断标记为true
,但是不会抛出异常
Tips:在打断状态下,无法使用
LockSupport.park()
挂起当前线程
1 | /** |
isInterrupted
此方法也是线程类的成员方法,作用是返回打断标记
1 | /** |
interrupted
此方法是Thread的静态方法,作用是重置当前运行线程的打断标记(就是将打断标记置为false),并返回之前的打断标记
1 | /** |