1、读者——写者问题C++程序
(原创作品)
演示效果图:
程序完整代码:
#include
#include
#include
#include
#include
#include//包含清屏头文件
//全局变量
int empty=1;//信号量
int wrIn=1;//信号量
int max;
int temp[30];
int *wait,*next;
int count=0;//记录已经完成操作的线
2、程数
int waitSemapore;
int type;//类型记录
int writc=1;
int readc=1;
void reader()/////////////////////////////////////////////////////读者函数开始
{
empty--;//P操作改变信号量
cout<<"读者获得资源"<<"(";
SYSTEMTIME sys;
GetLocalTime(&sys);//输出系统时间
cout<<"系统时间:"<3、<4、者"<5、 cerr<<"open file error!"<>ch;
outfile<6、//写者函数结尾
void codeIn()/////////////////////////////////////////////////////////////////输入界面
{
int ru;
cout<<"请输入你要创建多少个线程:"<>max;
for(int i=0;i>ru;///////////////
if(ru==1||ru==2)
temp[i]=ru;
else
cout<<
7、"输入有误!请重新输入"<8、
cout<9、j]==1)cout<<"读者"<10、/////////////////主函数
{
codeIn();//录入界面
wait=&temp[0];
while(wait<&temp[max]&&count11、正在等待资源"<<"]"<12、函数
type=2;}
else
{
cout<<"["<<"写者此时正在等待资源"<<"]"<13、
}//writer is end
next++;
}//1while()
if(type==1)
{cout<<"~"<<"读者"<14、2)
{
cout<<"~"<<"写者"<