国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

線程的分離與非分離狀態

2019-11-14 11:08:10
字體:
來源:轉載
供稿:網友

線程的分離狀態決定一個線程以什么樣的方式來終止自己

    非分離 【joinable】     分離 【detached】

非分離的線程能夠被其他線程收回其資源和殺死;在被其他線程回收之前,它的存儲器資源(如棧)是不釋放的【默認狀態】

分離的線程是不能被其他線程回收或殺死的,它的存儲器資源在它終止時由系統自動釋放

這里要注意的一點是,如果設置一個線程為分離線程,而這個線程運行又非常快,它很可能在pthread_create函數返回之前就終止了,它終止以后就可能將線程號和系統資源移交給其他的線程使用,這樣調用pthread_create的線程就得到了錯誤的線程號。要避免這種情況可以采取一定的同步措施,最簡單的方法之一是可以在被創建的線程里調用pthread_cond_timewait函數,讓這個線程等待一會兒,留出足夠的時間讓函數pthread_create返回。設置一段等待時間,是在多線程編程里常用的方法。但是注意不要使用諸如wait()之類的函數,它們是使整個進程睡眠,并不能解決線程同步的問題。

在默認情況下線程是非分離狀態的,這種情況下,主線程等待被創建的線程結束。只有當pthread_join()函數返回時,被創建的線程才算終止,才能釋放自己占用的系統資源

分離線程不是這樣子的,它沒有被其他的線程所等待,自己運行結束了,線程也就終止了,由系統回收資源。程序員應該根據自己的需要,選擇適當的分離狀態

參考:

http://m.survivalescaperooms.com/mydomain/archive/2011/08/14/2138454.htm


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湄潭县| 岑巩县| 新兴县| 仪征市| 绥德县| 兰西县| 遵义县| 正蓝旗| 苍梧县| 独山县| 泊头市| 郎溪县| 于都县| 浏阳市| 西畴县| 鄂托克前旗| 上高县| 诏安县| 中江县| 即墨市| 宾阳县| 曲阳县| 丁青县| 休宁县| 肥城市| 清镇市| 蓬莱市| 柏乡县| 大化| 桂阳县| 镇原县| 古田县| 宽甸| 汉寿县| 罗平县| 梁山县| 嘉鱼县| 馆陶县| 内乡县| 家居| 七台河市|