进程线程之间的同步生产者消费者信号量读者写者写者优先

上传者: yaoyaozii | 上传时间: 2019-12-21 22:09:48 | 文件大小: 1.81MB | 文件类型: rar
1。生产者消费者问题(信号量+mutex) 参考教材中的生产者消费者算法,创建5个进程,其中两个进程为生产者进程,3个进程为消费者进程。一个生产者进程试图不断地在一个缓冲中写入大写字母,另一个生产者进程试图不断地在缓冲中写入小写字母。3个消费者不断地从缓冲中读取一个字符并输出。为了使得程序的输出易于看到结果,仿照阅读材料中的实例程序,分别在生产者和消费者进程的合适的位置加入一些随机睡眠时间。 可选的实验:在上面实验的基础上实现部分消费者有选择地消费某些产品。例如一个消费者只消费小写字符,一个消费者只消费大写字母,而另一个消费者则无选择地消费任何产品。消费者要消费的产品没有时,消费者进程被阻塞。注意缓冲的管理。 2。用信号量和mutex方式实现睡觉的理发师问题 3。读者写者问题 教材和相关的阅读材料中对读者写者问题算法均有描述,但这个算法在不断地有读者流的情况下,写者会被阻塞。编写一个写者优先解决读者写者问题的程序,其中读者和写者均是多个进程,用信号量作为同步互斥机制。

文件下载

资源详情

[{"title":"( 43 个子文件 1.81MB ) 进程线程之间的同步生产者消费者信号量读者写者写者优先","children":[{"title":"_1p&c","children":[{"title":"consumer","children":[{"title":"bin","children":[{"title":"Debug","children":[{"title":"consumer.exe <span style='color:#111;'> 718.34KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"consumer.cpp <span style='color:#111;'> 1.94KB </span>","children":null,"spread":false},{"title":"obj","children":[{"title":"Debug","children":[{"title":"consumer.o <span style='color:#111;'> 701.34KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"consumer.cbp <span style='color:#111;'> 1.01KB </span>","children":null,"spread":false},{"title":"consumer.layout <span style='color:#111;'> 246B </span>","children":null,"spread":false},{"title":"consumer.depend <span style='color:#111;'> 166B </span>","children":null,"spread":false}],"spread":true},{"title":"producer","children":[{"title":"bin","children":[{"title":"Debug","children":[{"title":"producer.exe <span style='color:#111;'> 716.84KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"obj","children":[{"title":"Debug","children":[{"title":"producer.o <span style='color:#111;'> 700.29KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"producer.cbp <span style='color:#111;'> 1.01KB </span>","children":null,"spread":false},{"title":"producer.cpp <span style='color:#111;'> 2.05KB </span>","children":null,"spread":false},{"title":"producer.depend <span style='color:#111;'> 166B </span>","children":null,"spread":false},{"title":"producer.layout <span style='color:#111;'> 246B </span>","children":null,"spread":false}],"spread":true},{"title":"pc_problem","children":[{"title":"bin","children":[{"title":"Debug","children":[{"title":"pc_problem.exe <span style='color:#111;'> 716.38KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"obj","children":[{"title":"Debug","children":[{"title":"pc_problem.o <span style='color:#111;'> 700.71KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"pc_problem.depend <span style='color:#111;'> 144B </span>","children":null,"spread":false},{"title":"pc_problem.cpp <span style='color:#111;'> 2.41KB </span>","children":null,"spread":false},{"title":"pc_problem.cbp <span style='color:#111;'> 1.01KB </span>","children":null,"spread":false},{"title":"pc_problem.layout <span style='color:#111;'> 246B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"_3r&w","children":[{"title":"reader","children":[{"title":"reader.cpp <span style='color:#111;'> 2.85KB </span>","children":null,"spread":false},{"title":"bin","children":[{"title":"Debug","children":[{"title":"reader.exe <span style='color:#111;'> 716.45KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"obj","children":[{"title":"Debug","children":[{"title":"reader.o <span style='color:#111;'> 700.03KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"reader.depend <span style='color:#111;'> 149B </span>","children":null,"spread":false},{"title":"reader.layout <span style='color:#111;'> 244B </span>","children":null,"spread":false},{"title":"reader.cbp <span style='color:#111;'> 1022B </span>","children":null,"spread":false}],"spread":true},{"title":"r&w","children":[{"title":"r&w.cpp <span style='color:#111;'> 3.58KB </span>","children":null,"spread":false},{"title":"r&w.depend <span style='color:#111;'> 143B </span>","children":null,"spread":false},{"title":"bin","children":[{"title":"Debug","children":[{"title":"r&w.exe <span style='color:#111;'> 716.86KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"obj","children":[{"title":"Debug","children":[{"title":"r&w.o <span style='color:#111;'> 701.63KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"r&w.cbp <span style='color:#111;'> 1.00KB </span>","children":null,"spread":false},{"title":"r&w.layout <span style='color:#111;'> 243B </span>","children":null,"spread":false}],"spread":true},{"title":"writer","children":[{"title":"writer.cbp <span style='color:#111;'> 1022B </span>","children":null,"spread":false},{"title":"writer.depend <span style='color:#111;'> 149B </span>","children":null,"spread":false},{"title":"bin","children":[{"title":"Debug","children":[{"title":"writer.exe <span style='color:#111;'> 716.45KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"obj","children":[{"title":"Debug","children":[{"title":"writer.o <span style='color:#111;'> 700.04KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"writer.cpp <span style='color:#111;'> 2.93KB </span>","children":null,"spread":false},{"title":"writer.layout <span style='color:#111;'> 243B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"_2b&c","children":[{"title":"barber","children":[{"title":"bin","children":[{"title":"Debug","children":[{"title":"barber.exe <span style='color:#111;'> 716.41KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"barber.cpp <span style='color:#111;'> 2.07KB </span>","children":null,"spread":false},{"title":"obj","children":[{"title":"Debug","children":[{"title":"barber.o <span style='color:#111;'> 700.28KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"barber.depend <span style='color:#111;'> 149B </span>","children":null,"spread":false},{"title":"barber.layout <span style='color:#111;'> 243B </span>","children":null,"spread":false},{"title":"barber.cbp <span style='color:#111;'> 1022B </span>","children":null,"spread":false},{"title":"barber <span style='color:#111;'> 0B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}]

评论信息

  • weixin_38279467 :
    挺好,但是是基于windows的。。。
    2018-11-20
  • huanghua_11 :
    不错是不错,就是有点遗憾是在windows下的。。。
    2015-12-01
  • qq_25588523 :
    没说清楚是什么平台。其实我想要的是linux版本的。
    2015-11-08
  • lucifer333333 :
    本来打算用来写实验报告的,但好像不太对头
    2014-07-04
  • a210121a :
    还不错!可以使用。
    2014-06-25

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明