2012-02-15 190 views
0

有没有办法让一个线程启动一个新线程来等待它启动的线程停止了?我正在考虑使用锁定,但如果线程崩溃,锁将永远不会释放。Java线程同步

所以当我的程序调用

cTurnCardOvrerConnection thread = new cTurnCardOvrerConnection("thread3", connection, mPlayerList, mPlayersMessages, lBoard); 

将它等到线程结束?

mPlayerList.WaitForAllPlayers(); 
do 
{ 
    do 
    { 
     r=GetClient(); 
     switch(r) 
     { 
      case 0: return; // exitvon a very bad error 
     } 
    } while(r==2); // loop if it was a timeout wait for this thread to terminate.     

    cTurnCardOvrerConnection thread = new cTurnCardOvrerConnection("thread3", connection, mPlayerList, mPlayersMessages, lBoard);    
    if (CheckTimeStamp()) 
     break; 
} while(mPlayerList.AllPlayersFinished()==false); 

回答

5

您可以使用Thread.join()

当然,如果主线程刚刚启动辅助线程,然后等待它完成,那么辅助线程真的没有用处(只需在主线程上工作)。

+0

嗨,起初我想做多线程for – 2012-02-16 00:43:32