※ 引述《oishii.bbs@ptt.cc (喔帥)》之銘言:
> ※ 引述《jackylau@kkcity.com.tw (帥哞哞)》之銘言:
> : 關於以下程式:
> : 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 修改這篇文章
討論串 (同標題文章)