请参阅线程标题:“读者-作家问题”仅仅是多个消费者的“生产者-消费者问题”吗?凭直觉我会说不,但是我没有办法解释它,也可以肯定这个问题。
答案 0 :(得分:0)
Readers-Writers表示读者不修改基础状态,因此许多读者可以同时访问它。但是,因为Writer可以自由修改状态,所以没有Reader可以同时访问它。
Producer-Consumer是一个常见的同步问题,它具有两个访问器:一个访问器补充资源,另一个访问器消耗资源。您不能同时有多个生产者或消费者访问它。之所以会造成这种混乱,是因为有许多(受限制的)实现都使用繁忙等待(事务性内存)来实现更好的性能。
答案 1 :(得分:0)
生产者:产生一条消息。此外,他还必须读取队列指针,以确定将下一项写入哪里,并确定缓冲区是否已满。
消费者:消费者不仅是读者,因为它必须调整队列指针以显示它已从缓冲区中删除了一个单元。
编写器:编写器是在写入文件时将所有其他进程排除在外的进程,无论读者还是作家。
阅读器:阅读器是不需要相互排斥的进程。任何数量的阅读器都可以同时读取文件。
参考:“操作系统” William Stallings