1. 程式人生 > >C++11thread之detach()與join()的函式對比

C++11thread之detach()與join()的函式對比

在宣告一個std::thread物件之後,都可以使用detach和join函式來啟動被調執行緒,區別在於兩者是否阻塞主調執行緒。

(1)當使用join()函式時,主調執行緒阻塞,等待被調執行緒終止,然後主調執行緒回收被調執行緒資源,並繼續執行;

(2)當使用detach()函式時,主調執行緒繼續執行,被調執行緒駐留後臺執行,主調執行緒無法再取得該被調執行緒的控制權。當主調執行緒結束時,由執行時庫負責清理與被調執行緒相關的資源。