【发布时间】:2014-03-10 09:07:38
【问题描述】:
有 3 个工具。消费者需要 2 个工具来修改缓冲区。如果消费者 A 拿了 2 个工具,消费者 B 拿了 1 个,那么消费者 B 将不得不等待另一个工具发布。
我不确定我是否以正确的方式考虑这个问题。我解释它的方式是我需要 3 个互斥体,而消费者必须将 2 个锁定在 3 个之外,这是正确的想法吗?
我认为我不应该使用信号量,因为我不希望多个线程同时访问共享资源。在正常的生产者消费者问题中,只有 1 个互斥锁,但在这里我需要 3 个中的任何 2 个,我该如何处理?
【问题讨论】:
标签: c multithreading pthreads producer-consumer