我正在寻找在C++中无锁数据结构来替换以下:并行设置为C + +?
pthread_mutex_lock(plock);
set.insert(element);
pthread_mutex_unlock(plock);
此组应该最多O(logN)的复杂性支持.insert()
和.size()
用,有一个迭代器,并应该能够通过自定义比较器保持其顺序。基本上和Java中的ConcurrentSkipListSet
一样。理想情况下,它应该是平台独立的。
我在寻找CDS:http://libcds.sourceforge.net/doc/cds-api/modules.html,但不确定哪个数据结构可以实现目标。该文档对于某些数据结构并不具有复杂性。
任何建议将是伟大的,谢谢!
你的平台是什么?如果是Windows,您可以探索PPL(http://msdn.microsoft.com/en-us/library/dd504906.aspx)。 – Jagannath 2014-11-05 00:33:56
我必须问你想要解决的真正问题在这里?有可能你可以找到这样一个无锁容器......然后让它变得比战略上使用正常集合上的锁更慢。 – 2014-11-05 01:52:53
你确定'ConcurrentSkipListSet'是否是无锁的? – 2014-11-05 02:32:17