小编Ara*_*asn的帖子

主线程睡眠/中断如何在以下代码中工作

第二个循环如何实际中断休眠的主线程,而第一个没有?我的理解是在Thread.sleep(3000)之后,代码Thread.currentThread().interrupt()会在3秒后执行。谁能解释它实际上是如何工作的

for (int i = 0; i < 2; i++) {
            try {
                System.out.println("loop : " + i);
                Thread.sleep(3000);
                System.out.println("Woke up");
                Thread.currentThread().interrupt();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
Run Code Online (Sandbox Code Playgroud)
loop : 0
Woke up
loop : 1
java.lang.InterruptedException: sleep interrupted
exception loop:1
    at java.base/java.lang.Thread.sleep(Native Method)
    at multithreadings.Mainclass.main(Mainclass.java:13)

Run Code Online (Sandbox Code Playgroud)

java multithreading sleep interrupt

1
推荐指数
1
解决办法
853
查看次数

标签 统计

interrupt ×1

java ×1

multithreading ×1

sleep ×1