概述
本文涉及到的两个知识点
- interrupt() : 打断线程
如果被打断线程正在 sleep,wait,join 会导致被打断 的线程抛出 InterruptedException,并清除 打断标 记
;如果打断的正在运行的线程,则会设置 打断标 记 ;park 的线程被打断,也会设置 打断标记
- isInterrupted(): 判断当前线程是否被打断
会清除 打断标记
示例代码
public class interrupt用法 {
public static void main(String[] args) throws InterruptedException {
Thread t1 = new Thread(() -> {
while (true) {
boolean interrupted = Thread.currentThread().isInterrupted();
if (interrupted){
System.out.println("被打断了, 退出循环");
break;
}else {
System.out.println("沒有打断正常执行--");
}
}
}, "t1");
t1.start();
Thread.sleep(100);
System.out.println("开始interrupt");
t1.interrupt();
}
}
当线程睡眠完成后 Thread.sleep(100), 开始了interrupt打断线程, 随即在循环中执行方法isInterrupted(), 返回结果为true, 代表了该线程已经被打断了
最后
以上就是清秀冬日为你收集整理的多线程 interrupt用法的全部内容,希望文章能够帮你解决多线程 interrupt用法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复