xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 3KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-11
  • 語言: C/C++
  • 標簽:

資源簡介

基本純使用標準C++庫,與平臺無關,主要使用多線程、互斥鎖、條件變量。演示多個生產者多個消費者之間的同步問題

資源截圖

代碼片段和文件信息

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

unsigned?long?long?ResourceNumber?=?0;//緩沖區資源數目
unsigned?long?long?ResourcePool?=?10;//緩沖區最大容量
mutex?GlobalMutex;//全局的互斥鎖
condition_variable?GlobalCV;//全局的條件變量
bool?run?=?true;//控制各線程是否運行
chrono::milliseconds?*ProduceTime;//生產時間
chrono::milliseconds?*ConsumerTime;//消費時間

void?Consumer(int?id)
{
????while(run)
????{
????????this_thread::sleep_for(*ConsumerTime);//C++11線程睡眠
????????unique_lock?lock(GlobalMutex);//新建互斥鎖
????????while(ResourceNumber?<=?0)
????????????GlobalCV.wait(lock);//如果沒有資源,則進入等待狀態
????????ResourceNumber--;//令資源數目減1
????????cout?<????????lock.unlock();//解鎖
????????GlobalCV.notify_all();//喚醒其他所有線程
????}
}

void?Producer(int?id)
{
????while(run)
????{
????????this_thread::sleep_for(*ProduceTime);//C++11線程睡眠
????????unique_lock?lock(GlobalMutex);
????????while(ResourceNumber?>=?ResourcePool)
????????????GlobalCV.wait(lock);
????????ResourceNumber++;//令資源數目加1
????????cout?<

評論

共有 條評論