看板java
标 题Re: join的问题
发信站无名小站 (Tue Aug 1 11:58:05 2006)
转信站ptt!ctu-reader!ctu-gate!news.nctu!newsfeed.nthu!news.cs.nthu!netnews.c
※ 引述《[email protected] (喔帅)》之铭言:
> ※ 引述《[email protected] (帅哞哞)》之铭言:
> : 关於以下程式:
> : public static void main(String[] args) {
> : JoinTest jt = new JoinTest();
> : Thread t1 = jt.new th1();
> : Thread t2 = jt.new th2();
> : try{
> : t1.start();
> : t2.start();
> : t1.join(); //等t1执行完再执行t2
> 我的想法是这样 因为你现在这一段程式码是放在main里头
> 执行上面t1.join()的应该就是main thread
> 所以呢 join到t1之後的应该是main thread而不是t2
> 我不确定我的想法是不是正确 还请其他高手指教
没错,要实作原po原本所要的流程就要用wait()和notify()
或 t1.join() 在th2的 run() 里 invoked
> : //t2.join();
> : }catch(InterruptedException e){}
> : }
> : }
> : 这一个JoinTest类别会产生两个执行序t1(列印1到200),t2(列印201到400),
> : 我的预期结果是会从1列印到400,
> : 因为我加了t1.join()一列,表示我希望在t1结束再执行t2,
> : 这是我对join()方法的认知,
> : 但程式结果产生不规则交互执行,请问是为啥呢?
--
夫兵者不祥之器物或恶之故有道者不处君子居则贵左用兵则贵右兵者不祥之器非君子
之器不得已而用之恬淡为上胜而不美而美之者是乐杀人夫乐杀人者则不可得志於天下
矣吉事尚左凶事尚右偏将军居左上将军居右言以丧礼处之杀人之众以哀悲泣之战胜以
丧礼处之道常无名朴虽小天下莫能臣侯王若能守之万物将自宾天地相合以降甘露民莫
之令而自均始制有名名亦既有夫亦将知止知止可以不殆譬道之在天下202.75.4.140海
作者在
06/08/01 11:58:05 从
202.75.4.140 修改这篇文章