信号量 读者写者问题代码有点不理解 以下是PASCAL代码:
读者:
BEGIN
P(mutex);
read_count:=read_count+1;
IF read_count=1
THEN P(writer)
V(mutex);
读文件;
P(mutex);
read_count:=read_count-1;
IF read_count=0
THEN V(write);
V(mutex);
END;
写者:
BEGIN
P(write);
写文件;
V(write);
END;
尤其其中这个语句: IF read_count=1
THEN P(write); 不太理解,read_count=1不是表示已经有一个读者在读了吗?那写者就不能进入了吧,为什么还能执行P(write)呢?我知道mutex和write都是互斥信号量,初值为1.这条语句到底是什么意思,我没学过PASCAL,只学过C,也许是这里出了问题吧。恳请高手指点,小妹当感激不尽。
问题补充:如果可能的话,能不能每条语句都帮我解释下呢。搞不懂啊... ------解决方案-------------------- 根据版规,0分帖全部转移至非技术区!
http://topic.csdn.net/u/20080830/18/189fc510-7842-42c1-8029-cf8f3130f4c3.html