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

歡迎光臨散文網(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ù)的評論 (共 條)

分享到微博請遵守國家法律
册亨县| 合江县| 宝应县| 桐庐县| 洛川县| 绥芬河市| 财经| 逊克县| 鄂尔多斯市| 沁水县| 南宫市| 达日县| 榆林市| 轮台县| 岗巴县| 开原市| 黄陵县| 芜湖市| 乌兰县| 湖南省| 岳阳市| 牡丹江市| 凯里市| 昌平区| 全州县| 泰州市| 台中县| 溆浦县| 历史| 修武县| 太保市| 竹溪县| 玉龙| 清丰县| 庆城县| 冷水江市| 吴桥县| 贵溪市| 冕宁县| 石柱| 宣城市|