答案 0 :(得分:1)
Boost有无锁队列和堆栈。一个人不会对这些进行排序或分区。
在对文档进行表面检查时,TBB具有concurrent_hash_map和队列类,但同样如此。
只有来自TBB的concurrent_vector
会提出这个问题。文档描述如下:
数组
concurrent_vector<T>
是一个可动态增长的T
但是,只是存储(重新)分配是lockfree线程安全,而不是元素本身;
concurrent_vector永远不会移动元素,直到数组被清除,这可能比STL std :: vector更有优势,即使对于单线程代码也是如此
和
concurrent_vector上的操作对于增长而言是并发安全的,而不是用于清除或销毁向量。如果在concurrent_vector上有其他正在进行的操作,则不要调用方法clear()。
因此,如果您想对concurrent_vector进行排序,可能
std::partial_sort_copy
强>