Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75020
  • 博文数量: 34
  • 博客积分: 82
  • 博客等级: 民兵
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-23 18:51
文章分类
文章存档

2013年(2)

2012年(33)

分类:

2012-10-24 18:30:47

原文地址:读者写者问题 作者:gofiend

读者写者问题
  有两组并发进程:
      读者和写者,共享一组数据区
   要求:
     允许多个读者同时执行读操作
     不允许读者、写者同时操作
     不允许多个写者同时操作\\


第一类读者写者问题的解法


读者:
       while (true) {
       P(mutex);
           readcount ++;
           if (readcount==1)
               P (w);
       V(mutex);
          读
       P(mutex);
           readcount --;
           if (readcount==0)
               V(w);
        V(mutex);
        };


写者:
      while (true) {

       P(w);
         写
       V(w);

        };




下面unresolved

3)第二类读者写者问题:
写者优先
条件:
1)多个读者可以同时进行读
2)写者必须互斥(只允许一个写者写,也不能读者写者同时进行)
3)写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者)

阅读(749) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~