当无锁队列满/空时,生产者/消费者的退避策略?

时间:2018-03-14 11:37:36

标签: multithreading concurrency synchronization producer-consumer lock-free

假设生产者 - 消费者情景。我使用了固定容量队列的无锁实现,因此:

  1. 队列中可以保留的项目数量有限。
  2. 生产者/消费者可以直接向/从队列中推送/弹出项目,而无需持有任何锁定。
  3. 现在,我正在考虑如何同步生产者和消费者,以便生产者不忙于尝试推送到一个完整的队列,而消费者并不忙于从空队列中尝试弹出。

    我首先考虑了条件变量。但它似乎破坏了使用无锁队列实现的整个目的。

    轮询(使用间隔)是使用无锁队列的唯一合理方法吗?

0 个答案:

没有答案