2014-11-08 71 views
2

我正在編寫需要與線程一起工作的Android應用程序。
在這個程序中,我有3個線程開始在應用程序的開始。
這裏是我的代碼:如何在Android中執行兩個線程時運行第三個線程

Thread t1,t2,t3; 
protected void onCreate(Bundle savedInstanceState) 
{ 

t1=new Thread(new Runnable() 
{ 
    public void run() 
    { 
     //do some long stuffs 
     t3.notify(); 
    } 
}); 
t2=new Thread(new Runnable() 
{ 
    public void run() 
    { 
     //do some long stuffs 
     t3.notify(); 
    } 
}); 
t3=new Thread(new Runnable() 
{ 
    public void run() 
    { 
     this.wait(); 
     //run after t1 & t2 is done. 
    } 
}); 
t1.start(); 
t2.start(); 
t3.start(); 
} 

現在我要睡覺T3線程並運行它時,T1和T2完成他們的工作。

回答

1

傳遞一個T1,T2參照t3和內部的t3.run()等待其他線程:

t1.join(); 
t2.join(); 

像這樣:

final Thread t1, t2, t3; 

    t1 = new Thread(new Runnable() { 
     public void run() { 
      //do some long stuffs 
     } 
    }); 

    t2 = new Thread(new Runnable() { 
     public void run() { 
      //do some long stuffs 
     } 
    }); 

    t3 = new Thread(new Runnable() { 
     public void run() { 
      try { 
       t1.join(); 
       t2.join(); 
       // t1 & t2 have finished 
       // continue with t3 stuff 
      } catch (InterruptedException e) { 
       //handle it 
      } 
     } 
    }); 

    t1.start(); 
    t2.start(); 
    t3.start(); 
相關問題