4

请参阅线程标题:“读者-作者问题”是否只是具有多个消费者的“生产者-消费者问题”?直觉上我会说不,但我无法解释它,也可以看到这个问题得到肯定。

4

2 回答 2

3

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

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

于 2018-07-15T12:05:07.423 回答
0

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

消费者:消费者不仅仅是一个阅读器,因为它必须调整队列指针以显示它已经从缓冲区中删除了一个单元。

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

读者:读者是不需要相互排斥的进程。任意数量的阅读器可以同时阅读该文件。

参考:“操作系统”William Stallings

于 2019-01-19T07:30:05.033 回答