Pthead 執行緒 多執行緒程式設計

2021-07-23 09:11:11 字數 1370 閱讀 6476

posix執行緒(posix threads),簡稱pthreads,是執行緒的posix標準。該標準定義了建立和操縱執行緒的一整套api。在類unix作業系統(unix、linux、mac os x等)中,都使用pthreads作為作業系統的執行緒。windows作業系統也有其移植版pthreads-win32。

pthreads 定義了一套 c 語言的型別、函式與常量,它以 pthread.h 標頭檔案和乙個執行緒庫實現。

在 linux 編譯多執行緒程式的時候,要加上-lpthread選項,指定pthread庫。在程式**中包含執行緒標頭檔案 pthread.h 。

型別定義:

typedef

unsigned

long

int pthread_t;

//come from /usr/include/bits/pthreadtypes.h

用途:pthread_t用於宣告執行緒id。

sizeof(pthread_t) =8
typedef

struct

pthread_attr_t;

建立乙個執行緒,函式原型:

int pthread_create(

pthread_t *pthread_id,

const pthread_attr_t *attr,

void *(*start_rtn)(void *),

void *arg);

void *create(void *args); //標準形式。

void *create(void); //這個也行。

阻塞當前的執行緒,直到另外乙個執行緒執行結束,函式原型:

int pthread\_join(pthread_t pthread_id, void **args);
終止當前執行緒,函式原型:

void pthread_exit (void *retval);
返回執行緒 id,這個 id 跟 pthread_creat 中的第乙個引數的值一樣,函式原型:

pthread_t pthread_self (void);
中斷另外乙個執行緒的執行,函式原型:

int pthread_cancle(pthread_t thread);

多執行緒程式設計 執行緒同步

同步,永遠是多執行緒程式設計中最核心和最重要的話題.同步相關的概念比如 臨界區,原子操作,以及互斥量等等 總的來說,在多個執行緒之間採取同步措施,無非是為了讓他們更好的協同工作或者維持共享資料的一致性.1.共享資料的一致性 實際上,保證共享資料一致性的最簡單且最好的方法,就是使得該資料成為乙個常量,...

多執行緒程式設計

1 多執行緒的基本思路不是在介面執行緒執行費時的 而是專門啟動乙個執行緒 稱作工作執行緒 來完成,介面執行緒只負責介面的 顯示 和操作,而工作執行緒只負責耗時的操作過程。2 對於普通的win32應用程式來說,執行緒可以分為兩種 介面 ui user inte ce 執行緒和工作執行緒。介面執行緒一般...

多執行緒程式設計

如何編寫執行緒安全的dll 在我的工作中經常會編寫dll,這些dll有個共同的特點就是都有乙個初始化函式,乙個資源釋放函式,其他幾個函式都是核心功能函式。而且這些dll有時會被多個程序同時呼叫,這就牽扯到多程序的多執行緒呼叫dll的問題。有點繞口,以下我根據我實踐中遇到的問題,分四種情況分享一下我解...