pthread_cleanup

執行緒可以安排它退出時需要調用的函式,這樣的函式稱為執行緒清理處理程式,執行緒可以建立多個清理處理程式。處理程式記錄在棧中,也就是說它們的執行順序與它們註冊時的順序相反。

函式簡介

執行緒清理處理程式

pthread_cleanup_push來註冊清理函式rtn,這個函式有一個參數arg。在以下三種情形之一發生時,註冊的清理函式被執行:
1)調用pthread_exit。
2)作為對取消執行緒請求(pthread_cancel)的回響。
3)以非0參數調用pthread_cleanup_pop。

頭檔案

#include <pthread.h>

函式聲明

void pthread_cleanup_push(void (*rtn)(void *),void *arg);

void pthread_cleanup_pop(int execute);

參數

rtn 處理程式入口地址

arg 傳遞給處理函式的參數

編譯連結參數

-pthread

注意事項

1)如果執行緒只是由於簡單的返回而終止的,則清除函式不會被調用。

2)如果pthread_cleanup_pop被傳遞0參數,則清除函式不會被調用,但是會清除處於棧頂的清理函式。

示例

相關詞條

熱門詞條

聯絡我們