在我的計劃,我處理新主題與是否需要分離pthread以防止內存泄漏?
pthread_t thread;
pthread_create(&thread, NULL,
c->someFunction, (void *) fd); //where fd is ID of the thread
的問題是很簡單 - 如果我只是讓someFunction
完成,是它需要再C++
到例如某事物join
或其他任何東西,prevenet memory leaks
或內存是否自動釋放??
刪除我的答案,你的更好。 – BoBTFish
因此,當我想退出應用程序時,是否需要遍歷創建線程和'deatch'的'vector'(最終在完成其工作後「分離」某個線程)?我問,因爲我不確定是否理解'join'和'detach'之間的區別。但在我看來,我可以肯定,在我打電話之後,「detach」會終止線程,對吧? – Dworza
如果您將線程分離,線程完成工作時線程的資源將被釋放。Join用於連接到一個線程(如果你在main中的某個線程上進行連接,main將不會執行直到線程被終止並且其資源被釋放)。 'join'和'detach'用於不同的目的。但它們都釋放資源.Detach不是用於終止線程,線程將自行終止.Detached意味着沒有人正在等待線程終止。 (就像在加入,有人正在等待線程終止,因此它可以加入 –