concurrent-vector

    0热度

    1回答

    我有一个并发:: concurrent_vector并希望push_back线程安全的一个新的元素,如果它不存在(这就是为什么我必须先执行搜索)。我怎样才能做到这一点? 我需要一个并发集合,它在迭代器访问时是线程安全的(写入,读取相同的元素),并允许我在上面写的内容。 问题细化: 如果大多数情况下同时搜索,如果找不到元素(更罕见),则需要使用插入/推回;如果找到搜索元素,大多数情况下是需要)更新的

    0热度

    1回答

    我试图以类似于std::vector的方式在TBB (螺纹构件块)中获取对concurrent_vector的内存的引用。 因此,std::vector将被访问像:&stdVector[0]。 但concurrent_vector的等效项不起作用:&tbbVector[0]。 我想这可能与如何将内存存储在内部 为了并发,但有没有办法做到这一点?

    9热度

    2回答

    谷歌对“锁定免费矢量”的第一个结果是由Damian Dechev,Peter Pirkelbauer和Bjarne Stroustrup描述理论无锁矢量的研究论文。这个或者其他无锁矢量是否已经实现?

    1热度

    1回答

    我在TBB forum上提出过这个问题,但我希望这里有人可能会有一些额外的想法。我正在调试我们所看到的问题,并注意到tbb::concurrent_vector有一些奇怪的行为。 底线是在push_back()调用实际完成后,concurrent_vector的size()未反映此情况。我已经缩小它与容量有关,因为如果我捕获capacity()和size(),size() == capacity(

    2热度

    1回答

    我有多个大英特尔TBB concurrent_vectors,我需要合并。它们太大以至于无法分配足够大小的新concurrent_vector。 ......所以,下面的伪代码将无法正常工作 concurrent_vector<myStruct> A(100000); concurrent_vector<myStruct> B(100000); ... concurrent_vector<m