【发布时间】:2014-09-05 19:20:17
【问题描述】:
这段代码有一些问题,它没有得到执行。但是当我取消注释 finally 块时,它只是打印“完整”而不打印“holas”,知道吗?
import java.util.ArrayList;
import java.util.List;
public class MyThread {
/**
* @param args
*/
public static boolean interruptTask=false;
public static class D extends Thread{
public void run(){
while(!interruptTask){
System.out.print("Hello");
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Thread task = new D();
task.start();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
interruptTask=true;
try {
task.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}/*finally{
System.out.println("holas");
}*/
System.out.println("complete");
}
}
【问题讨论】:
-
这对我来说还为时过早,所以我重新打开了。
-
您确定您不只是等待 5 秒吗?
-
是的,你也可以试试eclipse,希望你能得到同样的结果
-
我非常怀疑你的结果。请将您的
sleep转为喜欢1000。并在run()中添加sleep,以免填满控制台缓冲区。 -
这将改变问题。 :(
标签: java multithreading join concurrency