linux多執行緒程式設計小結 一

2021-10-08 18:05:30 字數 2048 閱讀 9438

執行緒是程序基本的基本排程單位。而程序是程式執行和資源分配的最小單位。可以減少資源的開銷.

執行緒有專門的執行緒庫來呼叫thread.執行緒的建立用thread_create();

int

pthread_create

(pthread_t *restrict thread,

const pthread_attr_t *restrict attr,

void*(

*start_routine)

(void*)

,void

*restrict arg)

;

引數1 :執行緒的標誌

引數2 :執行緒的屬性

引數3 :執行緒函式

引數4 :執行緒傳遞的引數

執行緒的退出 pthread_exit(void *value_ptr)

等待執行緒結束

int pthread_join(pthread_t thread, void **value_ptr)

示例程式

#include

#include

#include

#include

int global_variable;

void

*test1()

}void

*test2()

}int

main

(int argc,

char

*ar**)

bit=

pthread_create

(&id2,

null

,test2,

null);

if(bit!=0)

pthread_join

(id1,

null);

pthread_join

(id2,

null);

return0;

}

結果如下

id1global_variable is 1 

id2global_variable is 0

id1global_variable is 1

id2global_variable is 0

id1global_variable is 1

id1global_variable is 2

id2global_variable is 1

id1global_variable is 2

id2global_variable is 1

id1global_variable is 2

id1global_variable is 3

id2global_variable is 2

id1global_variable is 3

id2global_variable is 2

id1global_variable is 3

id1global_variable is 4

id2global_variable is 3

id1global_variable is 4

id2global_variable is 3

id1global_variable is 4

id1global_variable is 5

id2global_variable is 4

id1global_variable is 5

id2global_variable is 4

id1global_variable is 5

id1global_variable is 6

id2global_variable is 5

id2global_variable is 4

id2global_variable is 3

id2global_variable is 2

id2global_variable is 1

id2global_variable is 0

小結二

多執行緒程式設計小結(一)

linux沒有真正意義上的執行緒,它的實現是由程序來模擬,所以屬於使用者級執行緒,位於libpthread共享庫 所以執行緒的id只在庫中有效 遵循posix標準。windows下有乙個真正的資料結構tcb來描述執行緒。linux上兩個最有名的執行緒庫linuxthreads和nptl。linux兩...

多執行緒程式設計小結(一)

1.背景知識 linux沒有真正意義上的執行緒,它的實現是由程序來模擬,所以屬於使用者級執行緒,位於libpthread共享庫 所以執行緒的id只在庫中有效 遵循posix標準。windows下有乙個真正的資料結構tcb來描述執行緒。linux上兩個最有名的執行緒庫linuxthreads和nptl...

linux多執行緒程式設計小結 三

第二節 計時等待 int pthread cond timewait pthread cond t cond,pthread mutex mutex,const timespec abstime 啟用乙個等待該條件的執行緒 存在多個等待執行緒時按入隊順序啟用其中乙個 int pthread cond...