Free考研资料 - 免费考研论坛

 找回密码
 注册
打印 上一主题 下一主题

读者写者问题

[复制链接]
跳转到指定楼层
楼主
gsj5555 发表于 08-10-15 19:43:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
semaphore   mutex ,  wmutex ; // mutex是用于保护计数器的信号量  wmutex 是用于互斥
mutex=1
int  readcount=0 ;
process  reader  ( ) {

  p ( mutex) ;
   readcount= ++;
    if (readcount==1)   p (wmutex) ;
   {读文件};
v (mutex);
readcount--;
if (readcount==0)      v(wmutex);

}

各位朋友,这么写对不对?
沙发
 楼主| gsj5555 发表于 08-10-15 19:52:18 | 只看该作者
能不能这么写?如果不能
哪位朋友能给我说明白?
板凳
xeagle 发表于 08-10-19 20:24:20 | 只看该作者
我觉得不太对
semaphore mutex , wmutex ; // mutex是用于保护计数器的信号量 wmutex 是用于互斥
mutex=1;
wmutex;//一开始应该是可写的
int readcount=0 ;
process reader ( ) {

p ( mutex) ;
readcount= ++;
if (readcount==1) p (wmutex) ;
v (mutex);            // 允许其他人读
{读文件};           
p (mutex);
readcount--;
if (readcount==0) v(wmutex);
v (mutex);

}
地板
xeagle 发表于 08-10-19 20:25:27 | 只看该作者
wmutex=1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系我们|Free考研资料 ( 苏ICP备05011575号 )

GMT+8, 24-11-19 02:41 , Processed in 0.088370 second(s), 12 queries , Gzip On, Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表