黑马程序员技术交流社区
标题:
关于Thread中 join方法的疑问
[打印本页]
作者:
苗润
时间:
2014-6-4 17:23
标题:
关于Thread中 join方法的疑问
本帖最后由 苗润 于 2014-6-4 20:25 编辑
Thread t1 = new Thread(j);
Thread t2 = new Thread(j);
t1.start();
t2.start();
t1.join();
复制代码
在t1.join以后 不是应该在t1线程运行完以后才执行其他线程的么,为什么t1 t2会交替执行。刚开始是主线程拥有执行权 当运行到 t2.start()以后 这时候 主线程 t1 t2 争夺执行权 为什么在 t1.join()以后 只把主线程屏蔽了 而没有屏蔽掉t2
作者:
kevinmesss.tz
时间:
2014-6-4 17:58
join方法是当前线程等待调用join方法的线程运行结束在运行
当前线程是主线程,调用join的是t1
所以t2并没有等待
作者:
提菩--空
时间:
2014-6-4 18:39
Thread t1 = new Thread(j);
Thread t2 = new Thread(j);
t2.start();
t1.start();
t1.join();
把t2.start()放在t1.start()前面,让t2做为主线线。这时调用t1.join()就会按照你的要求运行了
作者:
KevinSmart
时间:
2014-6-4 20:18
当t1和t2 同时等待时,t1先执行,所以会交替执行
作者:
苗润
时间:
2014-6-4 20:24
kevinmesss.tz 发表于 2014-6-4 17:58
join方法是当前线程等待调用join方法的线程运行结束在运行
当前线程是主线程,调用join的是t1
所以t2并没有 ...
哦~ 当前线程 懂了谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2