mysterin / question_and_answer

1 stars 0 forks source link

线程中断 #100

Closed mysterin closed 5 years ago

mysterin commented 5 years ago

interrupt()

这个函数只会设置线程的中断状态为 true, 当线程运行到阻塞函数比如 sleep, wait, join 时, 就会不断轮询中断状态是否 true, 如果是 true 就抛出 InterruptedException 异常, 同时会把中断状态修改为 false.

interrupted() 与 isInterrupted() 与 isInterrupted(boolean)

interrupted() 是静态方法, 调用当前线程的 isInterrupted(true) 方法; isInterrupted() 是对象方法, 调用 isInterrupted(false) 方法; isInterrupted(boolean) 是本地方法, 这个方法会检测中断状态是否为 true. 而参数是 true 表示还会将中断状态重置为 false, 参数是 false 就只检测中断状态.

mysterin commented 5 years ago

不可中断阻塞