【发布时间】:2019-04-18 08:19:53
【问题描述】:
我正在寻找一个 collection 数据结构,它是:
- 线程安全
- 无锁
- 非分配(摊销或预分配都可以)
- 非侵入式
- 不使用外来内在函数
元素顺序无关紧要。堆栈,队列,袋子,什么都可以。我找到了很多满足这五个要求中的四个的例子,例如:
- .NET 的 List 不是线程安全的。
- 如果我在其上放置互斥体,则它不是无锁的。
- .NET 的ConcurrentStack 是线程安全的、无锁的,使用简单的
CompareExchange,但为每个元素分配一个新的Node。 - 如果我将
next指针从Node移动到元素本身,那么它就是侵入性的。 - Array based lock free data structures 往往需要多字内在函数。
我觉得我错过了一些非常明显的东西。这应该是一个已解决的问题。
【问题讨论】:
标签: collections pool intrinsics lock-free