linux執行緒相關函式及使用

2021-10-23 09:16:32 字數 1797 閱讀 3571

apt-get install manpages-posix-dev
pthread_create函式

函式原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr,  void *(*start_routine) (void *), void *arg);

函式功能:建立乙個執行緒

函式引數:pthread_t 執行緒id

pthread_attr_t 執行緒屬性,為空時使用預設屬性

start_routine 需要執行的函式

arg 傳遞給start_routine的引數

返回值: 成功返回0,失敗返回對應的錯誤型別;

說明: 1)執行緒的退出可以使用pthread_exit退出,也可以直接return退出;

2)如果建立執行緒的main函式退出,該main函式中的所有執行緒都將被銷毀;

2.pthread_join函式

函式原型:int pthread_join(pthread_t thread, void **retval);

函式功能:等待執行緒結束

函式引數:thread 執行緒id

retval 執行緒函式的返回值

返回值:成功返回0,失敗返回對應的錯誤型別

3.pthread_detach函式

函式原型:int pthread_detach(pthread_t thread);

函式功能:呼叫該函式後,執行緒在執行結束後會自動釋放系統分配的資源,而不需要呼叫pthread_join等待執行緒結束。

函式引數:thread 執行緒id

返回值:成功返回0,失敗返回對應的錯誤型別

4.pthread_exit函式

函式原型:void pthread_exit(void *retval);

函式功能:結束乙個執行緒,等同於return

函式引數:retval 需要返回的引數

返回值:無

說明:retval指向的變數不能是棧變數,因為棧變數在函式退出時會自動銷毀。

5.pthread_self()函式

函式原型: pthread_t pthread_self(void);

函式功能:獲取當前執行緒的id

函式引數:無

返回值:返回當前執行緒的id號

示例:

#include #include #include #include void posix_thread_test();

pthread_t g_pthread_id;

int main()

void *test_fn(void *param)

pthread_exit((void*)retval);

//return retval;

}void posix_thread_test()

else

ret = pthread_join(g_pthread_id,&pret);

if(0 == ret)

}

執行結果

注意上述例程中test_fn中retval是使用malloc分配的記憶體,所以在pthread_join之後需要主動釋放。

linux中線程相關函式

linux中線程相關函式 2010年03月09日 星期二 22 18 1.比較兩個執行緒 id 是否一致。執行緒id 使用 pthread t 資料型別來表示。linux 使用 unsigned long int 表示pthread t 資料型別。solaris 9 把 pthread t 資料型別...

fopen 及相關函式使用

函式簡介 函式功能 開啟乙個檔案 函式原型 file fopen const char path,const char mode 相關函式 open,fclose,fopen s 1 wfopen 所需庫 返回值 檔案順利開啟後,指向該流的檔案指標就會被返回。如果檔案開啟失敗則返回null,並把錯誤...

Linux執行緒介紹及函式操作

執行緒共享資源 乙個程序中的多個執行緒共享以下資源 1.可執行的指令 2.靜態資料 3.程序中開啟的檔案描述符 4.當前工作目錄 5.使用者id 6.使用者組id linux執行緒庫 pthread執行緒庫中提供以下操作 建立執行緒 執行緒 結束執行緒 同步和互斥機制 訊號量 互斥鎖 使用執行緒庫編...