最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

線程基本操作 (4)線程清理函數(shù)

2022-10-28 10:00 作者:GXTon_阿通  | 我要投稿

類似于進程的atexit()
在線程運行完之后,如果想要在線程退出時,執(zhí)行某個操作.
就可以用到線程清理函數(shù).

與進程不同的是,線程可以注冊多個清理函數(shù).
這些清理函數(shù)會記錄在線程的棧中.
棧是先進后出.所以注冊順序和執(zhí)行順序是相反的.

下面是添加和移除清理函數(shù)的函數(shù):

pthread_cleanup_pop()可以清除棧中最頂層的,也就是最后添加的清理函數(shù).


觸發(fā)線程清理函數(shù)執(zhí)行的條件:
1,線程調(diào)用了pthread_exit()退出時;
2,線程響應(yīng)了取消請求時;
3,用非0參數(shù)調(diào)用pthread_cleanup_pop();
(pthread_cleanup_pop()的參數(shù)如果傳入的是0,那么清理函數(shù)不會被調(diào)用,而是被移除; 如果參數(shù)為非0,那么就會調(diào)用清理函數(shù);)

pthread_clean_push()和pthread_cleanup_pop()雖然是函數(shù),但是他們是用宏實現(xiàn)的.
其中分別包含 { 和 },所以兩個"函數(shù)"需要成對實現(xiàn).


例子:

對上面代碼進行編譯,

編譯方法一:可以使用 gcc -o main main.c -lpthread

編譯方法二:可以使用make,(前提是編寫一個makefile)

運行結(jié)果:


線程基本操作 (4)線程清理函數(shù)的評論 (共 條)

分享到微博請遵守國家法律
靖西县| 宁夏| 云南省| 黄冈市| 苏尼特右旗| 靖边县| 灌云县| 长垣县| 固始县| 岳阳县| 博湖县| 五峰| 冀州市| 荔波县| 沙湾县| 集贤县| 双峰县| 门源| 宽甸| 丰顺县| 六盘水市| 法库县| 岑溪市| 天长市| 同仁县| 平潭县| 玛曲县| 黑山县| 大足县| 手游| 金阳县| 榆树市| 盐津县| 镇雄县| 蒲江县| 上饶县| 抚州市| 瓮安县| 微山县| 靖安县| 斗六市|