"readers-writers" 只是 "producer–consumer" 有多个消费者吗?

Is "readers-writers" just "producer–consumer" with multiple consumers?

查看帖子标题:"readers-writers problem" 只是 "producer–consumers problem" 有多个消费者吗?直觉上我会说不,但我没有办法解释,也可以看到这个问题得到肯定。

Readers-Writers 意味着 Readers 不修改底层状态,因此许多人可以同时访问它;但是因为 Writer 可以自由修改状态,所以没有 Reader 可以同时访问它。

Producer-Consumer 是两个访问器的常见同步问题:一个补充资源,一个消耗资源。您不能让多个生产者或消费者同时访问它。可能会出现混淆,因为有许多(受限的)实现使用忙等待(呃,事务内存)来从这个模式中获得更好的性能。

生产者:产生一条消息。此外,他还必须读取队列指针以确定将下一个项目写入何处并确定缓冲区是否已满。

消费者:消费者不仅仅是一个reader,因为它必须调整队列指针以表明它已经从缓冲区中移除了一个单元。

Writer: Writer 是在写入文件时排除所有其他进程的进程,readers 和 writer 都一样。

Reader:Reader是不需要相互排斥的进程。任意数量的 reader 可以同时读取文件。

参考资料:"Operating Systems"威廉·斯托林斯