linux 多執行緒程式設計

2021-07-07 10:27:08 字數 1369 閱讀 6729

執行緒的概念早在上世紀60年代就被提出,知道上世紀80中期才被真正使用起來。solaris是執行緒使用的先驅,在傳統的unix系統中,乙個執行緒就對應乙個程序,多執行緒類似於多程序,執行緒的左右沒有得到很好地發揮。現在多執行緒技術已經得到廣泛的使用,與多程序相比,它具有的有點主要有:

該函式負責建立出乙個新的執行緒,當pthread_create()函式呼叫時,傳入的引數有執行緒屬性、執行緒函式、執行緒函式變數,用於生成乙個某種特性的執行緒來執行執行緒函式。其函式原型為:

int pthread_create(pthread_t *thread,                   //執行緒識別符號

pthread_attr_t *attr, //執行緒屬性,一般情況下置null

void *(*start_routine)(void *), //函式指標

void *arg); //執行緒間傳遞引數

pthread_join()函式用來等待乙個執行緒的結束,這個函式是阻塞函式,一直到被等待的執行緒結束為止,函式才返回並且收回被等待執行緒的資源。函式原型:

extern

int pthread_join __p((pthread_t __th, void ** __thread_return));

執行緒函式的結束方式有兩種。

執行緒函式執行完畢,自行結束,不返回結果。

通過pthread_exit()函式退出,傳出返回結果。

#include 

#include

#include

static int run = 1;

static int retval;

void *thread_func(void* arg)

printf("exit sub thread.\n");

retval = 8;

pthread_exit( (void *) &retval); //exit the sub thread & capture the return val

}int main()

for(int i = 0; i < times; i++)

run = 0; // to stop sub thread

int *ret_join;

pthread_join(pt, (void**)&ret_join);

printf("sub thread return value is: %d\n", *ret_join);

return

0;}

編譯:」c++ thread_test.cc -o thread_test -lpthread」

Linux 多執行緒程式設計

1.建立執行緒和退出的函式原型 int pthread create pthread t thread,pthread attr t attr,void start routine void void arg pthread exit 0 其他還有很多相關的函式。2.編譯時要加上 lpthread ...

Linux多執行緒程式設計

linux 多執行緒程式設計 多執行緒支援 posix 執行緒介面,稱為 pthread,pthread create 用來建立執行緒,pthread join 等待執行緒結束,函式的原型分別如下 extern int pthread create p pthread t thread,const ...

linux 多執行緒程式設計

多執行緒的使用 典型的執行緒包括乙個執行時間系統,它可以按透明的方式來管理執行緒。通常執行緒包包括對執行緒的建立和刪除,以及對互斥和條件變數的呼叫。posix標準執行緒庫具有這些呼叫。這些包還提供執行緒的動態建立和刪除,因此,直到執行時間之前,執行緒的個數不必知道。執行緒具有乙個id 乙個堆疊 乙個...