【问题标题】:sorted atomic linked list algorithm (priority queue)排序原子链表算法(优先队列)
【发布时间】:2011-03-26 06:41:36
【问题描述】:

有人可以向我指出一种用于排序线程安全原子(无锁)链表/优先级队列的算法吗?我知道如何只做一个链表本身,但现在我需要一个排序的。与未排序的列表相比,我不确定这是微小的变化还是重大的重新设计,因此我想在自己制作之前先看看现有的算法。

它实际上不必是一个列表(或技术上已排序),但它的行为类似于具有以下属性的优先级队列:

  • 最低元素是具有最小整数字段值的元素
  • 在恒定时间内访问最低元素
  • 仅通过原子操作进行修改(无锁)
  • 在线性时间内插入/移除

内容可能是指向结构的指针。要排序的整数字段是该结构的成员之一。

这是一个 C++ 程序,但我不需要代码示例,算法描述就可以了。接近但不完美的算法也值得赞赏。

【问题讨论】:

  • 如果您只需要最小元素,似乎您想要一个原子优先级队列。不过,这仍然是一个有趣的问题,我很好奇答案是什么。
  • 是的,优先级队列可能更接近我在逻辑上想要的。我已经更新了描述。

标签: c++ c algorithm


【解决方案1】:

看看这个:“Fast and Lock-Free Concurrent Priority Queues for Multi-Thread Systems”。谷歌搜索肯定会为您提供更多链接。

【讨论】:

猜你喜欢
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多