|
珞珈山水BBS →
武汉大学 →
计算机学院 →
单文区文章阅读
|
| 单文区文章阅读 [返回] |
|---|
|
发信人: maye09 (掏眯外), 信区: C.S 标 题: HELP~HELP~问个关于读写者PV操作的问题 谁懂。。。 发信站: 珞珈山水 (Wed Mar 3 17:34:43 2010), 站内 假设有一个数据集被多个并行进程共享,其中有些进程只是读这个数据集,而有些进程则需要修改这个数据集的内容。阅读者相互不影响,但写入者则是互斥访问的。因此,解决这个问题的最简单的方法是:当没有写入者在访问共享数据集时,阅读者可以进入访问,否则必须等待。下面则是一个读者优先的解决的互斥访问。 其中信号量access用来控制读写互斥;而信号量rc则用来控制rc读者统计值。 阅读者 loop P(rc) ReaderCount++; if(ReaderCount==1) P(access);//当有读者在使用数据时,暂停写入进程 V(rc); 访问数据; P(rc); ReaderCount--;//清除读者数量,则可以接纳新一位读者 if(ReaderCount==0) V(access);//读者进程完毕,可以启用写进程 V(rc); endloop ====================== 写入者 loop P(access); 修改数据; V(access); endloop; 就这个例子,我觉得if(ReaderCount==1)应该是>=1 否则当readercount>=1的时候,阅读者里的P(access)就起不到作用了。 难道没有readercounter>=1的情况么? -- 朝闻道,夕死可矣。 -- 朝闻道,夕死可矣。 ※ 来源:·珞珈山水 http://bbs.whu.edu.cn·[FROM: 202.114.66.*] |
| [返回单文区目录] |
|
|