繁体   English   中英

Java线程同步

[英]Java Thread synchronization

有没有办法让启动新线程的线程等待直到其启动的线程停止? 我当时正在考虑使用锁定,但是如果线程崩溃,锁定将永远不会被释放。

所以当我的程序调用

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);

您可以只使用Thread.join()

当然,如果主线程只是启动辅助线程,然后等待其完成,则辅助线程实际上没有任何用处(只需在主线程上进行工作即可)。

尝试使用CountDownLatch

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM