多執行緒順序列印以及生產消費者

2022-06-28 15:21:10 字數 1208 閱讀 2436

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

std::mutex mtx;

std::condition_variable cv;

int num = 1;

const int n = 99;

int i = 0;

void print_a()

if (i <= n)

cv.notify_all(); //喚醒所有掛起的執行緒 }}

void print_b()

if (i <= n)

cv.notify_all(); }}

void print_c()

if (i <= n)

cv.notify_all(); }}

int main()

condition_variable用來喚醒乙個或多個等待在某特定條件上的執行緒,所以 condition_variable 通常在乙個 while 迴圈裡面。

#include #include #include #include #include char g_ch = 0;

void print_fun(char ch)

); // 判斷條件為true 那麼就不阻塞。

}std::cout << (char)(ch);

g_ch = (ch - 'a' + 1) % 3

cvar.notify_all(); }}

int main()

std::cout << std::endl;

system("pause");

return 0;

}

#include #include #include #include #include std::mutex mtx;

std::condition_variable cvar;

std::queueque;

void providers(int val)

cvar.notify_one(); }}

void consumers(int num));

val = que.front(); que.pop();

} std:: cout << "consumer : "

多執行緒 生產者消費者

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

多執行緒生產消費者模式

package net.jxatei.jsj.thread 消費者與生產者共同的資源 author 安 緹 吖 public class clerk catch interruptedexception e try catch interruptedexception e system.out.pr...

Linux多執行緒 生產者消費者

生產者消費者問題 這是乙個非常經典的多執行緒題目,題目大意如下 有乙個生產者在生產產品,這些產品將提供給若干個消費者去消費,為了使生產者和消費者能併發執行,在兩者之間設定乙個有多個緩衝區的緩衝池,生產者將它生產的產品放入乙個緩衝區中,消費者可以從緩衝區中取走產品進行消費,所有生產者和消費者都是非同步...