當前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...