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

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 ;
}
}
}
}


叮当猫咪
浏览 142回答 3
3回答

慕斯王

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

蓝山帝景

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

万千封印

r.interrupt();放到大括号外面,否则执行不到
打开App,查看更多内容
随时随地看视频慕课网APP