考研复习(10)-读者写者问题
2011-11-21 08:03
351 查看
int readerCount =0
//记录当前读者数量
semaphore mutex=1;
//互斥地访问文件
semaphore rmutex=1;
//互斥地访问readerCounter;
writer()
{
while(1)
{
wait(mutex);
writing;
signal(mutex);
}
}
reader()
{
while(1)
{
wait(rmutex);
//先申请读写readerCount的权限
if(readerCount==0) wait mutex;
//如果当前没有读者在读文件,可能有写者在写文件,申请读写权限
count++;
signal (rmutex);
reading;
wait(rmutex);
count--;
if(count==0) signal(mutex);
//当前没有读者,释放读写权限
signal(rmutex);
}
}
//记录当前读者数量
semaphore mutex=1;
//互斥地访问文件
semaphore rmutex=1;
//互斥地访问readerCounter;
writer()
{
while(1)
{
wait(mutex);
writing;
signal(mutex);
}
}
reader()
{
while(1)
{
wait(rmutex);
//先申请读写readerCount的权限
if(readerCount==0) wait mutex;
//如果当前没有读者在读文件,可能有写者在写文件,申请读写权限
count++;
signal (rmutex);
reading;
wait(rmutex);
count--;
if(count==0) signal(mutex);
//当前没有读者,释放读写权限
signal(rmutex);
}
}
相关文章推荐
- 操作系统笔记《7》-------生产者、消费者问题 。读者、写者问题 程序实现
- C++ 读者与写者问题
- 用信号量解决读者写者问题
- C语言:生产者-消费者问题、读者-写者问题
- 经典读者写者问题
- 读者写者问题之写者优先(java)
- Java实现生产者消费者问题与读者写者问题
- 操作系统进程同步互斥经典问题之读者写者问题
- 经典同步互斥问题之读者—写者问题
- 秒杀多线程第十一篇 读者写者问题
- 读者-写者问题
- (操作系统原理·第三章)读者-写者问题
- Java 5种方法实现生产者消费者问题与2种方法实现读者写者问题
- 读者与写者问题
- 使用读写锁解决读者-写者问题
- C#编写的读者写者问题(自私的读者)
- 读者-写者问题
- 用信号量解决读者写者问题
- p,v操作例题解析--读者-写者问题--誊抄问题——睡眠理发师问题
- 读者---写者问题