我正在處理一個項目,其中有一個主線程和一個守護程序線程來執行文件輸出。在我的主線程中,我有一個字段pthread_t * _daemon
,我想刪除,但顯然只有在_daemon
返回NULL(我明白使用pthread_exit()
導致內存泄漏)。只有在它返回後才刪除守護程序線程
我怎樣才能不用忙碌等待呢?如果我嘗試使用條件變量,則出現問題 - 當我呼叫signal()
表單_daemon
喚醒我的主線程時,它會在_daemon
返回NULL之前刪除_daemon
。
我所做的只是使用一個互斥鎖,當程序在_daemon
返回之前啓動並解鎖時,該鎖被鎖定。有沒有更好的方法,不會導致等待?
'pthread_join'? – Mat
目前還不清楚你在問什麼。你想要刪除什麼? –
pthread_t字段,但只有守護程序線程存儲在那裏後返回 – yotamoo