linux c 多執行緒生產者和消費者模型

2021-10-19 21:21:14 字數 710 閱讀 2951

其實這個模型就是通知乙個收乙個發,鎖是為了解決內部矛盾,訊號量解決外部矛盾

#include #include #include #include #include #include #include #include /* see notes */

#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

#define pthread_sum 10

int gs;

sem_t gsem_produce;

sem_t gsem_custom;

pthread_mutex_t pro_mutex;//生產者互斥量

pthread_mutex_t cus_mutex;//消費者互斥量

//生產者

void* add (void* num)

int main() }

for (i = 5; i < 10; i++) }

for (i = 0; i < 5; i++)

sleep(2);

cout << "thread end" << endl;

return 0;

}

多執行緒 生產者和消費者

生產者 消費者問題 生產者向產品區里放產品,當產品區里滿了,需要等待 消費者從產品區里取產品消耗,當產品區里空了,需要等待。public class producerandconsumer 消費者 static class consumer implements runnable catch int...

多執行緒 生產者和消費者

前面說過,每個執行緒都有自己的資源,但是 區是共享的,即每個執行緒都可以執行相同的函式。這可能帶來的問題就是幾個執行緒同時執行乙個函式,導致資料的混亂,產生不可預料的結果,因此我們必須避免這種情況的發生。c 提供了乙個關鍵字lock,它可以把一段 定義為互斥段 critical section 互斥...

多執行緒 生產者消費者

這個就不多說了,直接上 include include using namespace std const unsigned short size of buffer 10 緩衝區長度 unsigned short productid 0 產品號 unsigned short consumeid 0...