|
|
1
2
相关研究链接: Is a lock (wait) free doubly linked list possible?
注意:虽然接口和性能特性看起来像一个双链表,但在内部,这些结构非常复杂,基于哈希表或其他结构。没有任何东西可以在内部创建一个双链接列表,同时不受锁定。我不记得见过证据,但我认为这是不可能的。 Windows API single linked list instead . 添加use InterlockedPushEntrySList,删除use InterlockedPopEntrySList进行处理。 |
|
|
2
5
考虑:
在这个线程安全的队列中,仍然有两个“间隙”,队列可以被另一个线程更改。实际上,迭代器可能会因为这些更改而失效。现在比较:
|
|
|
3
0
|
|
|
4
0
所以如果你能用锁,也许可以用这样的东西: Concurrent FIFO Queue with Boost |