生产者 - 消费者扭曲

时间:2015-01-27 18:27:14

标签: multithreading producer-consumer lockless

所以,我试图解决生产者 - 消费者问题本质上的问题,但略有不同。

  • "制作"线程创建令牌并将它们添加到列表中
  • "消费与#34;线程扫描令牌列表并处理它们。
  • 由于处理过程,可能会删除一些令牌,而其他令牌可能会停留一段时间。

所以主要区别在于生产者的输出可以按任意顺序从列表中删除,而不一定是FIFO。

现在,我正在考虑两个线程之间共享的结构的同步。我想拥有一个无锁结构。我知道无锁队列,但由于上述原因,队列不能很好地适应用例。仍然可以使用队列,如下所示:

  • 将令牌出列并处理
  • 如果不应该将其删除,请将其排队

但是,如果可能的话,我想避免它。理想情况下我想要的是一个无锁的单链表,一个线程可以附加,而另一个线程可以从中删除任意元素。你能指点我的一些实现或论文吗?

0 个答案:

没有答案