使 Consumer/Producer 问题有点高级

Making Consumer/Producer Problem a bit Advanced

有什么方法可以通过引入一些场景或使其更复杂一些来使同步中的 Consumer/Producer 问题变得更高级。 我问这个的原因是因为在更简单的层面上 Producer/Consumer 问题太简单了,我必须在学期末做一个项目,所以如果有人对我如何做一个像样的 intermediate/slightly 这个问题的高级版本来实现。

谢谢。

在某些情况下会很明显吗?如果消费者线程传入要放置出队项的本地指针地址,生产者线程可以直接加载结果。这意味着消费者在设置 运行 后不需要弄乱任何互斥锁——它已经加载了出列的项目。这意味着生产者线程可以识别哪个线程将被设置 运行,因此每个消费者都需要自己的 event/condvar/semaphore 来等待,并且同步存储在队列中的容器中……或者…… .

..您可以将同步引用存储在消费者 arg 指向的位置,直到它需要发出信号为止,那时释放该本地以存储出列的项目。这意味着在 PC 队列结构中只需要一个指针容器。

这种诡计有帮助,甚至可靠地工作吗?

是:)