Linux多執行緒程式設計

2021-07-25 04:09:08 字數 787 閱讀 2562

用消費者生產者模型說明linux多執行緒程式設計

//作用:阻塞並等待某處用函式pthread_cond_signal()傳送訊號

pthread_cond_wait(&cond, &lock);

//1.進入函式(這時的互斥量已經被鎖住)

//2.等待條件

//3.解鎖互斥量

//4.等待條件

//5.鎖住互斥量

//6.函式返回(這時的互斥量還是被鎖住)

////說明:

//1.在第2步就開始等待,是為了防止條件改變發生在第3步和第4步之間,防止遺漏任何的條件改變

//2.在進入函式時就鎖住互斥量,保護了條件變數,防止條件變數在呼叫函式pthread_cond_wait()之前就改變

//3.函式pthread_cond_wait()放在while()迴圈中,可防止當該函式返回時,被互斥量保護的普通變數goods仍不滿足條件

#include 

#include

#include

#define max 20

pthread_mutex_t lock;

pthread_cond_t cond;

int goods = 0;

void *thrpro(void *ptr)

pthread_exit(0);

}void *thrcon(void *ptr)

pthread_exit(0);

}int main()

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 乙個堆疊 乙個...