我偶然發現了一個代碼示例here。pthread_join(thread_id,&res),如果&res不是NULL - 是否需要空閒(res)?
{
...
void *res;
...
s = pthread_join(tinfo[tnum].thread_id, &res);
...
free(res); /* Free memory allocated by thread */
}
任何人都可以深入到並行線程比我在free(res)
發表評論,請:引起我的注意(所有其他行跳過)的線?我不得不說,我從來沒有見過這種情況,而使用谷歌搜索1-1.5小時並沒有給我任何其他類似的例子。
刪除,與引擎戰鬥;) –
感謝您的及時回覆。我錯過了strdup()(或者,而是在讀取時將它自動轉換爲alloca(),但alloca()不允許用於此目的)。實際上,你給了我一個思考的新方向......我以某種方式假定一旦線程(正確)終止,它的資源就會被系統自動釋放(在手冊頁排除中明確提到了一些)。 –
感謝您的及時回覆。我錯過了strdup()。你實際上給了我一個思考的新方向。我以某種方式假設一旦一個線程被(正確)終止,它的資源就會被系統自動釋放(在手冊頁例外中有一些明確提到):「如果線程可以連接,則另一個線程可以調用pthread_join(3)等待線程終止並獲取其退出狀態,只有當一個終止的可連接線程加入後,才能釋放回系統的最後一個資源。「 –