黑马程序员技术交流社区
标题:
join的疑问
[打印本页]
作者:
247033993@qq.co
时间:
2014-5-25 16:47
标题:
join的疑问
本帖最后由 247033993@qq.co 于 2014-5-25 16:49 编辑
复制代码
public class Test_Join {
/**
* @param args
*/
public static void main(String[] args) {
JoinMethod j=new JoinMethod();
Thread a=new Thread(j,"线程A");
Thread b=new Thread(j,"线程B");
Thread c=new Thread(j,"线程c");
a.start();
b.start();
c.start();
try {
Thread.sleep(2000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println("======================");
System.out.println(c.isAlive());
for (int i = 0; i < 10; i++) {
try {
c.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
class JoinMethod implements Runnable{
public void run(){
for (int i = 0; i <10; i++) {
System.out.println(Thread.currentThread().getName());
}
}
}
复制代码
先不说这种极端方法的合理性,线程都运行完了,再使用join,为什么捕获异常这里没有一个关于线程死亡的异常呢?
作者:
Sevenette
时间:
2014-5-26 01:50
开启abc线程后,sleep()方法让主线程睡觉了。。。然后abc就欢快的跑~~
等到主线程醒了 abc也跑完了。。。结束run()方法的abc进程都死亡了。
判断c.isAlive();结果自然也是false
感觉应该是 既然c进程都死亡了
c.join 就成了无用的代码(?)
作者:
247033993@qq.co
时间:
2014-5-26 09:16
我就是这个疑问,这个应该设计一个线程死亡的异常
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2