经典案例:读者写者模型
2020-07-19 04:59
423 查看
经典案例:读者写者模型
读者写者模型
不成熟方案
P_Reader
********************** P(mutex_Blackboard) 。。。。 从黑板读信息 。。。。 V(mutex_Blackboard) **********************
P_Writer
********************** P(mutex_Blackboard) 。。。。 向黑板写信息 。。。。 V(mutex_Blackboard) **********************
读者优先方案
P_Reader
********************** P(mutex_ReaderCount) ReaderCount++ If (ReaderCount==1) P(mutex_Blackboard) V(mutex_ReaderCount) ********************** 。。。。 从黑板读信息 。。。。 ********************** P(mutex_ReaderCount) ReaderCount-- If (ReaderCount==0) V(mutex_Blackboard) V(mutex_ReaderCount) **********************
P_Writer
********************** P(mutex_Blackboard) 。。。。 向黑板写信息 。。。。 V(mutex_Blackboard) **********************
读者写者公平方案
P_Reader
********************** P(mutex_Register) P(mutex_ReaderCount) ReaderCount++ If (ReaderCount==1) P(mutex_Blackboard) V(mutex_ReaderCount) V(mutex_Register) ********************** 。。。。 从黑板读信息 。。。。 ********************** P(mutex_ReaderCount) ReaderCount-- If (ReaderCount==0) V(mutex_Blackboard) V(mutex_ReaderCount) **********************
P_Writer
********************** P(mutex_Register) P(mutex_Blackboard) 。。。。 向黑板写信息 。。。。 V(mutex_Blackboard) V(mutex_Register) **********************
写者优先方案
P_Reader
********************** P(mutex_enhance) P(mutex_Register) P(mutex_ReaderCount) ReaderCount++ If (ReaderCount==1) P(mutex_Blackboard) V(mutex_ReaderCount) V(mutex_Register) V(mutex_enhance) ********************** 。。。。 从黑板读信息 。。。。 ********************** P(mutex_ReaderCount) ReaderCount-- If (ReaderCount==0) V(mutex_Blackboard) V(mutex_ReaderCount) **********************
P_Writer
********************** P(mutex_WriterCount) WriterCount++ If (WriterCount==1) P(mutex_Register) V(mutex_WriterCount) ********************** P(mutex_Blackboard) 。。。。 向黑板写信息 。。。。 V(mutex_Blackboard) **********************P(mutex_WriterCount) WriterCount-- If (WriterCount==0) V(mutex_Register) V(mutex_WriterCount) **********************
拓展的读者写者模型
读者互助组
变形一:互相帮忙的读者1组和互相帮忙的读者2组, 读者1组和读者2组不会同时读黑板,但同一组中的读者可以同时读黑板,并且会插队(后面)
P_Reader1
********************** P(mutex_Reader1Count) Reader1Count++ If (Reader1Count==1) P(mutex_Blackboard) V(mutex_Reader1Count) ********************** 。。。。 从黑板读信息 。。。。 ********************** P(mutex_Reader1Count) Reader1Count-- If (Reader1Count==0) V(mutex_Blackboard) V(mutex_Reader1Count) **********************
P_Reader2
********************** P(mutex_Reader2Count) Reader2Count++ If (Reader2Count==1) P(mutex_Blackboard) V(mutex_Reader2Count) ********************** 。。。。 从黑板读信息 。。。。 ********************** P(mutex_Reader2Count) Reader2Count-- If (Reader2Count==0) V(mutex_Blackboard) V(mutex_Reader2Count) **********************
写者互助组
P_Writer1
********************** P(mutex_Writer1Count) Writer1Count++ If (Writer1Count==1) P(mutex_Register) V(mutex_Writer1Count) ********************** P(mutex_Blackboard) 。。。。 向黑板写信息 。。。。 V(mutex_Blackboard) **********************P(mutex_Writer1Count) Writer1Count-- If (Writer1Count==0) P(mutex_Register) V(mutex_Writer1Count) **********************
P_Writer2
********************** P(mutex_Writer2Count) Writer2Count++ If (Writer2Count==1) P(mutex_Register) V(mutex_Writer2Count) ********************** P(mutex_Blackboard) 。。。。 向黑板写信息 。。。。 V(mutex_Blackboard) **********************P(mutex_Writer2Count) Writer2Count-- If (Writer2Count==0) P(mutex_Register) V(mutex_Writer2Count) **********************
相关文章推荐
- C# 多线程编程 经典模型 读者和写者问题
- 经典进程同步问题:读者-写者问题
- 经典同步问题linux下的C实现:生产者-消费者问题,读者-写者问题,哲学家问题
- DL之Keras:基于Keras框架建立模型实现【预测】功能的简介、设计思路、案例分析、代码实现之详细攻略(经典,建议收藏)——daidingdaiding
- 操作系统同步互斥经典问题——读者写者问题
- C++学习笔记:c++模型设计和实现 经典案例
- 线程同步经典案例-生产者与消费者模型-Java
- 【经典操作系统问题】读者写者问题分析
- 经典进程同步问题--读者写者问题
- 经典进程同步问题(二)——读者、写者问题
- 进程同步的几个经典题目-生产者消费者-哲学家进餐-读者写者
- linux:读者写者模型
- 经典的进程同步问题-----读者-写者问题详解
- Wolsey“强整数规划模型”经典案例之一单源固定费用网络流问题
- 经典同步问题--读者和写者问题
- DL之Keras:基于Keras框架建立模型实现【预测】功能的简介、设计思路、案例分析、代码实现之详细攻略(经典,建议收藏)——daidingdaidingdaiding
- Java并发之读者写者模型
- 读者写者模型与生产者消费者模型
- 进程同步的经典问题1——读者写者问题(写者优先与公平竞争)
- 经典同步互斥问题之读者—写者问题