Linux下的多執行緒程式設計(一) 建立執行緒

2021-06-26 07:47:57 字數 909 閱讀 5362

1. 執行緒的定義:乙個程序內部的控制序列。

2. 執行緒的優點:

3. 執行緒的缺點:

4. 執行緒的結構

執行緒的id

,暫存器值,棧,排程優先順序和策略,訊號遮蔽字,errno

變數,私有資料。

程序對他下面的所有執行緒共享了:可執行程式文字、程式的全域性記憶體和堆記憶體(作業系統分配的)、棧以及檔案描述符。

1. 見下面的 pthread_create() 函式原型:

int pthread_create(pthread_t *restrict tidp, 

const pthread_attr_t *restrict attr,

void *(*start_rtn)(void),

void *restrict arg);

引數解釋:

tidp

建立後,返回的執行緒id

指向此變數

attr

執行緒的屬性,用null

表示預設的屬性

start_rtn

新建立的執行緒,從此函式開始執行

arg為上面start_rtn

函式的引數

2. 執行例項

在linux環境下,用 gcc t.c -o t -lpthread 編譯執行。

#include #include #include void printthreadinfo(const char *whichthread) 

void *thread_function()

int main() else

sleep(1);

printthreadinfo("main thread");

return 0;

}

linux下多執行緒程式設計

先看執行的結果 1 主函式正在建立執行緒,2執行緒1被建立 3 thread1 i m thread 1th 4執行緒2被建立 5 thread2 i m thread 2nd 6 thread2 number 0 7執行緒3被建立 8主函式正在等待執行緒結束.9 thread1 number 0 ...

Linux下的多執行緒程式設計

執行緒是作業系統能夠進行排程運算的最小單位,它被包含在程序之中,是程序中的實際運作單位。一條執行緒指的是程序中乙個單一順序的控制流,乙個程序可以併發多個執行緒,每條執行緒執行不同的任務。include intpthread create pthread t pthread,const pthread...

Linux下的多執行緒程式設計

如何一次建立多個執行緒 現在對上述的互斥量的實驗程式進行分析 首先在main 函式中建立了兩個執行緒,先執行執行緒1,再執行執行緒2.執行緒1對count加互斥所,此時執行緒2就不能訪問count。只有當沉睡時間過後執行緒1對互斥量解鎖之後,執行緒2才能加鎖修改count的值並訪問,最後解鎖。try...