优先读者的读者/写者问题的算法设计
来源:互联网 发布:三角形测试用例java 编辑:程序博客网 时间:2024/04/30 22:48
首先该问题必须满足下列四个要求:
读者可以共享
写者互斥
除非有一个写者在访问共享数据集,其他情况下,读者不等待
写者执行写操作前,应该让所有读者和写者退出
对于写者来说,只要设置一个写者与写者之间、读者与写者之间共享的一个信号量w即可,w=1;对于读者,需要特殊处理,要求对读者进行计数,因为,读者对文件是共享的,对于第一个读者,需要对数据集“加锁”,防止写者对数据集进行访问,而其他读者可以直接进入访问数据集;对于最后一个读者,需要“解锁”,以便让写者或后面的读者能够访问数据集。读者计数ReadCnt,与之互斥的信号量mutex,初值为0。
程序如下:
typedef int SemaphoreSemaphore mutex = 1, w = 1;int ReadCnt = 0;//下面读者与写者进程并发执行process Reader(void){ while(1) { P(mutex); ReadCnt++; if(1 == ReadCnt) P(w); V(mutex); /*对数据集进行读操作*/ P(mutex); ReadCnt--; if(0 == ReadCnt) V(w); V(mutex); }}process Writer(void){ while(1) { P(w); /*对数据集进行写操作*/ V(w); }}
0 0
- 优先读者的读者/写者问题的算法设计
- “读者-写者问题”的写者优先算法实现
- 读者写者问题之读者优先
- C 优先读者 读者/写者问题
- 读者写者问题--使用信号量的读者优先与写者优先程序分析
- 读者写者问题--使用信号量的读者优先与写者优先程序分析
- 读者-写者同步问题的写者优先实现
- 读者写者问题中写者优先的想法
- 操作系统的优先读者和优先写着的读者/写着问题
- 操作系统的优先读者和优先写着的读者/写着问题
- 很有借鉴意义!读者写者问题--使用信号量的读者优先与写者优先程序分析
- 使用信号量解决读者写者问题--读者优先
- 有名信号量实现读者-写者问题(读者优先)
- linux 读者写者问题 读者优先c++
- 读者-写者优先
- 读者-写着问题中写者优先的实现
- 优先读者/写者问题—操作系统
- 读者和写者问题的思想
- exit(0)与exit(1)、return区别
- Unity
- mysql索引问题
- 【Spring AOP】学习记录(二)
- javax.servlet.jsp.JspException cannot be resolved to a type
- 优先读者的读者/写者问题的算法设计
- CancelIO的作用:防止为发送的数据丢失
- JZOJ 4810 【NOIP2016提高A组五校联考1】道路规划
- Java的反射基本概念、语法和应用
- 剑指offer_整数中1出现的次数
- Linux嵌入式开发常见面试题
- 同义词总结
- HDU 5918 Sequence I kmp算法+虽然暴力也能过
- 2016华为校招上机试题2——洞穴逃生