为了账号安全,请及时绑定邮箱和手机立即绑定

为什么那个new出来的进程十秒后没有结束?

为什么那个new出来的进程十秒后没有结束?

叮当猫咪 2022-05-19 13:15:52
import java.util.*;public class TestThread{public static void main(String args[]){Runner1 r = new Runner1();r.start();try{Thread.sleep(10000);}catch (InterruptedException e){r.interrupt();//r.flag = false;}}}class Runner1 extends Thread{boolean flag = true;public void run(){while(flag){System.out.println(new Date());try{sleep(1000);}catch (InterruptedException e){return ;}}}}
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

你的interrupt()是在出现异常的时候,catch的时候才终止把。你放在sleep后面就可以了,我试过。

查看完整回答
反对 回复 2022-05-23
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

try {
Thread.sleep(10000);
r.interrupt(); //加在这里
} catch (InterruptedException e) {
//r.interrupt(); 这里的语句只有在Interrupt异常发生时,才会执行
//r.flag = false;
}

查看完整回答
反对 回复 2022-05-23
?
万千封印

TA贡献1891条经验 获得超3个赞

r.interrupt();放到大括号外面,否则执行不到

查看完整回答
反对 回复 2022-05-23
  • 3 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信