關於以下程式:
public class JoinTest{
class th1 extends Thread{
public void run(){
for(int i=1;i<=200;i++) System.out.println(" "+i);
}
}
class th2 extends Thread{
public void run(){
for(int i=201;i<=400;i++) System.out.println(i);
}
}
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
//t2.join();
}catch(InterruptedException e){}
}
}
這一個JoinTest類別會產生兩個執行序t1(列印1到200),t2(列印201到400),
我的預期結果是會從1列印到400,
因為我加了t1.join()一列,表示我希望在t1結束再執行t2,
這是我對join()方法的認知,
但程式結果產生不規則交互執行,請問是為啥呢?
--
┌─────◆KKCITY◆─────┐▇─┐KKADSL→六星級優質連線服務
│ bbs.kkcity.com.tw │┴ └─▇ 馬上申請帶你上網環遊全世界!
└──《From:140.131.95.183 》──┘ KKADSL ┴ http://adsl.kkcity.com.tw
--
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 4 篇):