一个线程在没有执行可中断方法之前就被打断,会出现什么情况?
程序员文章站
2022-06-21 13:31:20
示例代码:public static void main(String[] args) { System.out.println(Thread.currentThread().getName() + ":" + Thread.interrupted()); //中断主线程 Thread.currentThread().interrupt(); //执行isInterrupted不会重置中断信号 System.out.println(Thread.currentThr...
示例代码:
public static void main(String[] args) {
System.out.println(Thread.currentThread().getName() + ":" + Thread.interrupted());
//中断主线程
Thread.currentThread().interrupt();
//执行isInterrupted不会重置中断信号
System.out.println(Thread.currentThread().getName() + ":" + Thread.currentThread().isInterrupted());
long start = System.currentTimeMillis();
try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
System.out.println((System.currentTimeMillis() - start) + "ms后中断了");
}
}
运行结果:
可以发现,如果一个线程在没有执行可中断方法之前就被打断,会立即中断执行可中断方法,所以才几乎会是0ms。
本文地址:https://blog.csdn.net/weixin_38106322/article/details/107370576