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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

線程的分離與非分離狀態(tài)

2019-11-14 12:00:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

線程的分離狀態(tài)決定一個(gè)線程以什么樣的方式來(lái)終止自己

    非分離 【joinable】     分離 【detached】

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

分離的線程是不能被其他線程回收或殺死的,它的存儲(chǔ)器資源在它終止時(shí)由系統(tǒng)自動(dòng)釋放

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

在默認(rèn)情況下線程是非分離狀態(tài)的,這種情況下,主線程等待被創(chuàng)建的線程結(jié)束。只有當(dāng)pthread_join()函數(shù)返回時(shí),被創(chuàng)建的線程才算終止,才能釋放自己占用的系統(tǒng)資源

分離線程不是這樣子的,它沒(méi)有被其他的線程所等待,自己運(yùn)行結(jié)束了,線程也就終止了,由系統(tǒng)回收資源。程序員應(yīng)該根據(jù)自己的需要,選擇適當(dāng)?shù)姆蛛x狀態(tài)

參考:

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


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿拉善左旗| 祁门县| 长汀县| 天津市| 连山| 浙江省| 石台县| 新乡市| 砀山县| 南乐县| 慈溪市| 拜城县| 集安市| 勐海县| 利辛县| 喜德县| 财经| 县级市| 齐齐哈尔市| 台安县| 重庆市| 清远市| 宁陕县| 七台河市| 潜江市| 怀化市| 阳新县| 莱西市| 嘉荫县| 三江| 庆云县| 正镶白旗| 清水河县| 鹿泉市| 蓬安县| 喀什市| 德保县| 宁化县| 富裕县| 汝州市| 华蓥市|