Linux的C编程线程问题 60

假设有100个reader和100个writer要访问1个文件,reader只负责读文件,writer只负责写文件。要求如下:(1)允许多个reader同时读一个文件;(... 假设有100个reader和100个writer要访问1个文件,reader只负责读文件,writer只负责写文件。要求如下:
(1) 允许多个reader同时读一个文件;
(2) 当有一个writer在写文件时,不允许其他reader和writer访问读写该文件。
(3) 当reader在读文件时,不允许writer写文件,但允许其他reader读文件
2. 说明
(1) 在main()函数里用pthread_create()函数创建100个线程分别调用Reader()函数和Writer()函数,既100个reader,100个writer;
(2) Reader()函数和Writer()函数都有一个参数id,表示reader/writer的id,范围从0~99。调用pthread_create时把id参数传递给Reader()和Writer()函数;
(3) 变量ReaderNum和WriterNum分别用于记录当前reader和writer的数量;
(4) 函数SleepRandom(),ReadFile(), WriteFile()由题目提供,不用修改。SleepRandom()用于让线程Sleep一个随机时间,从0 ~1秒,ReadFile()模拟读文件操作并打印相关信息,WriteFile()模拟写文件操作并打印相关信息;
(5) 利用Mutex,完成整个程序homework4.c,达到题目的要求
(6) 提示:重点是Reader()函数和Writer()函数,可根据需要增加其他变量或函数
展开
 我来答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式