作者jsh770806 (jsh770806)
看板java
标题[问题] 如何让两个执行绪都结束才往下执行
时间Fri Mar 2 21:43:07 2012
我想设计一个有两个执行绪分别跑出一个结果
然後把两个结果合并起来形成我要的结论
所以我想要确定两个执行绪都已经跑完了在继续往下跑
不知道这样的程式要怎麽样设计
原本我想说应该是下面这样
Thread1 obj1 = new Thread1(alpha,times/2);
Thread1 obj2 = new Thread1(alpha,times/2);
obj1.start();
try{
obj2.start();
obj1.join();
}catch(Exception e){}
System.out.println( (obj1.showSum()+obj2.showSum())/times);
但是想了一下 似乎不是我想要的结果
因为join() 是指等这个执行绪结束在去执行其他的执行绪
而我是希望可以两个执行绪一起跑 等两个都跑完了 再去执行最後一行
但是我不知道该怎麽样设计这样一个程式
不知道版上的大大 可不可以给一些 提示 谢谢
小弟是java新手 不知道问题会不会很烂 如果很烂只好请版上的大大多包涵...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.127.203
1F:→ awert:你obj2没有join,所以最後一行只会等obj1跑完就直接算了 03/02 21:57
2F:→ jsh770806:就算我放了obj2.join() 不是也就表示要等obj1跑完才跑 03/02 22:00
3F:→ jsh770806:obj2(假设我放obj1後面) 但我想两个要一起跑 03/02 22:02
4F:→ jsh770806:不要等谁先执行完 才执行另一个 03/02 22:03
5F:→ awert:啥 -_- ? 03/02 22:13
6F:→ mars90226:不对喔,这样应该是主执行绪会等obj1,obj2跑完才跑 03/02 22:13
7F:→ mars90226:你的obj2已经start了 话说等60秒真让人着急... 03/02 22:15
8F:→ uziel:个人认为这种需求应该用 wait / notify 方法来实作 03/02 22:19
9F:推 LaPass:去看Thing in java以及,有lock这个东西可以用 03/02 22:22
11F:推 swpoker:阿你就弄个同步的纪录变数就好啦~ 03/03 13:20
12F:→ jsh770806:谢谢几位大大的回复 我知道怎麽去设计我的程式了 03/04 00:19