91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

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

資源簡介

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

資源截圖

代碼片段和文件信息

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

unsigned?long?long?ResourceNumber?=?0;//緩沖區(qū)資源數(shù)目
unsigned?long?long?ResourcePool?=?10;//緩沖區(qū)最大容量
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);//如果沒有資源,則進入等待狀態(tài)
????????ResourceNumber--;//令資源數(shù)目減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++;//令資源數(shù)目加1
????????cout?<

評論

共有 條評論