執行緒是程序基本的基本排程單位。而程序是程式執行和資源分配的最小單位。可以減少資源的開銷.
執行緒有專門的執行緒庫來呼叫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...