欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

一个线程在没有执行可中断方法之前就被打断,会出现什么情况?

程序员文章站 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

相关标签: Java并发编程