【发布时间】:2014-02-05 11:11:25
【问题描述】:
我不明白在第二个读写器问题的通用解决方案中,在读取器程序最开始时最外层互斥锁的目的是什么。
为了说明这一点,我将从适当的维基百科条目 (link) 中发布代码。我说的是 mutex_3 :
READER
P(mutex_3);
P(r);
P(mutex_1);
readcount := readcount + 1;
if readcount = 1 then P(w);
V(mutex_1);
V(r);
V(mutex_3);
reading is performed
P(mutex_1);
readcount := readcount - 1;
if readcount = 0 then V(w);
V(mutex_1);
我能想到的唯一答案是阻止新读者的涌入。但我认为,除了它的核心功能之外,下一个互斥体 r 已经完成了。我错了吗?
【问题讨论】:
标签: concurrency semaphore theory