C++多线程学习
linux線程執行和windows不同,pthread有兩種狀態joinable狀態和unjoinable狀態
?一個線程默認的狀態是joinable,如果線程是joinable狀態,當線程函數自己返回退出時或pthread_exit時都不會釋放線程所占用堆棧和線程描述符(總計8K多)。只有當你調用了pthread_join之后這些資源才會被釋放。
若是unjoinable狀態的線程,這些資源在線程函數退出時或pthread_exit時自動會被釋放。
unjoinable屬性可以在pthread_create時指定,或在線程創建后在線程中pthread_detach自己, 如:pthread_detach(pthread_self()),將狀態改為unjoinable狀態,確保資源的釋放。如果線程狀態為 joinable,需要在之后適時調用pthread_join.
轉載于:https://www.cnblogs.com/fkissx/p/4644006.html
總結
- 上一篇: [ccf 4] 网络延时
- 下一篇: C++Builder中ListView控