C語言用pthread h建立執行緒

2021-09-26 18:36:26 字數 1412 閱讀 3176

c11制定了乙個標準的執行緒庫threads.h,但部分編譯器不支援它。

官方api列表:

這裡列出幾個常用api:

pthread_t	// 一種資料型別,用於儲存執行緒id

intpthread_create

(pthread_t *id,

// 傳入乙個pthread_t型別的變數的位址

const pthread_attr_t * attr,

// 傳入執行緒的屬性(傳入null則是預設屬性)

void*(

*)(void*)

,// 傳入要執行的函式名

void

*arg)

;// 傳入要執行的函式的引數(沒有引數則填null,有多個則封裝成乙個結構體)

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

執行緒建立成功後會將該執行緒的id儲存到變數id中,並返回0。執行緒建立失敗時會返回非零值。

要執行的函式應該定義成 void

*fun

(void

*arg) 的格式。

intpthread_join

(pthread_t id,

void

**retval)

; 功能:暫停當前執行緒的執行,等待id所指的執行緒終止。當它終止之後,其返回值會儲存在retval變數中。

intpthread_cancel

(pthread_t id)

; 功能:向某個執行緒傳送取消請求,請它結束執行。

目標執行緒可能立即終止,也可能稍後終止,也可能忽略取消請求。

這裡建立兩個執行緒,分別執行兩個函式:

#include

#include

void

*fun1()

typedef

struct

horse;

void

*fun2

(void

*p)int

main()

; rc =

pthread_create

(&id,

null

, fun2,

&horse);if

(rc)

puts

("failed to create the thread fun2().");

// 阻塞主線程的執行,以免主線程執行結束時提前終止子執行緒

pthread_join

(id,

null);

puts

("main() end.");

return0;

}

編譯執行:

學習筆記 windows下,用c語言來建立執行緒

include include typedef void handle define semaphore handle define threadhandle handle define threadprocess dword winapi define threadreturn 0 define ...

C語言 用malloc 建立動態陣列

因本人才疏學淺,見識淺薄,有不當之處望指正,謝謝!當我們建立陣列時,不允許在程式執行時選擇陣列的大小和分配記憶體。如果n是乙個整形變數。double a n c99以前不允許,n是變數 但是,可以 a double malloc n sizeof double 允許 關於記憶體分配。所有程式都必須預...

用 RNN 建立語言模型

今天來看迴圈神經網路的乙個重要的應用 語言模型。什麼是語言模型?語言模型的應用?為什麼用基於 rnn 的語言模型?rnn 是如何實現語言模型的?rnn 是如何實現 character level 語言模型的?character level 語言模型的具體應用 生成莎士比亞風格的文字 語言模型,它的任...