C 11實現簡單生產者消費者模式

2021-08-18 13:51:28 字數 886 閱讀 8168

當前c++11已經實現了多執行緒、互斥量、條件變數等非同步處理函式,並且提供了諸如sleep之類的時間函式,所以後面使用c++開發這一塊的時候完全可以實現跨平台,無需在windows下寫一套然後又在linux下寫一套了。

本文用c++11實現了乙個簡單的生產者-消費者模式,生產者每1s將乙個數值放到雙向佇列中,消費者每2s從雙向佇列中取出資料。

[cpp]

view plain

copy

#include "stdafx.h"

#include 

#include 

#include 

#include 

#include 

class

cthreaddemo  

}  void

consumethread()  

in***ata = m_data.front();  

m_data.pop_front();  

printf("consume %d\n"

, ndata);  

lck.unlock();  

/* 等待2s */

std::chrono::milliseconds dura(2000);  

std::this_thread::sleep_for(dura);  

}  }  

public

:  cthreaddemo()  

void

start()  

for(

inti = 5; i < 10; i++)  

for(auto& t : threads)  

}  };  

int_tmain(

intargc, _tchar* argv)    

C 11 實現生產者消費者雙緩衝

基礎的生產者消費者模型,生產者向公共快取區寫入資料,消費者從公共快取區讀取資料進行處理,兩個執行緒訪問公共資源,加鎖實現資料的一致性。通過加鎖來實現 1 class produce 1 8void runproduce 15 16void join 20void start 23void stop ...

生產者消費者 生產者與消費者模式

一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...

c 11生產者消費者

綜合運用 c 11 中的新的基礎設施 主要是多執行緒 鎖 條件變數 來闡述乙個經典問題 生產者消費者模型,並給出完整的解決方案。include include include include include include static const int kitemrepositorysize 1...