3
根據How can I tell reliably if a boost thread has exited its run method?,謝天謝地,你可以加入一個完成的線程,並避免出現競爭條件,如果你只有在運行時纔有條件地加入線程。終止後是否可以中斷增強線程?
但是thread::interrupt()
呢?它可以在線程退出後調用嗎?
根據How can I tell reliably if a boost thread has exited its run method?,謝天謝地,你可以加入一個完成的線程,並避免出現競爭條件,如果你只有在運行時纔有條件地加入線程。終止後是否可以中斷增強線程?
但是thread::interrupt()
呢?它可以在線程退出後調用嗎?
是的,這種方法很安全。
如果*這是指執行線程,要求線程將 可以進入與中斷啓用預定義 中斷點之一的下一次中斷,或者如果當前 在啓用 中斷的情況下在對其中一個預定義中斷點的呼叫中被阻止。
當boost::thread
對象(*this
)不是「執行線程」,這意味着沒有運行,調用此方法不執行任何。
很高興知道。它是否遵循,線程可以安全地中斷自己(有權訪問線程對象)?導致在下一個中斷點/睡眠時退出?我想是這樣。 –
我不是100%相信,因爲文檔只說明如果線程仍在運行會發生什麼,但我無法找到任何明確提到如果線程未運行會發生什麼。另一方面,線程不運行時唯一合理的做法是什麼...... – user463035818