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

  • 大小: 3KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-09
  • 語言: C/C++
  • 標簽: 進程??同步??互斥??

資源簡介

一個簡單的有關于生產者和消費者問題的實例程序

資源截圖

代碼片段和文件信息

#include?“windows.h“
#include?
#include?

const?unsigned?short?BUFFER_SIZE?=?10;?
short?writer_id?=?0;?
short?reader_id?=?0;?
short?in?=?0;?
short?out?=?0;?

int?buffer[BUFFER_SIZE];?
bool?continu?=?true;?
HANDLE?hmutex;?
HANDLE?hfullsemaphore;?
HANDLE?hemptysemaphore;?

double?eRandom(int?upLimit);
typedef?struct
{ int?data;
}INTEGER;

void?Reader()
{
??reader_id=buffer[out];
??out=(out+1)%BUFFER_SIZE;
}

void?Writer()
{
???buffer[in]=writer_id;
???in=(in+1)%BUFFER_SIZE;
}
DWORD?WINAPI?reader(LPVOID?lppara)
{
while(continu){
WaitForSingleobject(hemptysemaphoreINFINITE);
WaitForSingleobject(hmutexINFINITE);
????if(reader_id==10)
????return?0;
int?tNo=((INTEGER*)lppara)->data;
printf(“第?%d?個讀者讀出?%d?\n“tNo++reader_id);

int?sleepTime=20*(int)eRandom(50+tNo);
Sleep(sleepTime);
??
Reader();

ReleaseMutex(hmutex);
ReleaseSemaphore(hfullsemaphore1NULL);
}
return?0;
}


DWORD?WINAPI?writer(LPVOID?lppara)
{
while(continu){
WaitForSingleobject(hfullsemaphoreINFINITE);???
WaitForSingleobject(hmutexINFINITE);
????????if(writer_id==10)
????????return?0;
???
int?tNo=((INTEGER*)lppara)->data;
printf(“第?%d?個寫入者寫入?%d?\n“tNo++writer_id);
int?sleepTime=10*(int)eRandom(50+tNo);
Sleep(sleepTime);

Writer();

ReleaseMutex(hmutex);

評論

共有 條評論