以下を置き換えるために、C++ でロックフリーのデータ構造を探しています。
pthread_mutex_lock(plock);
set.insert(element);
pthread_mutex_unlock(plock);
セットは、最大で O(logN) の複雑さをサポート.insert()
し.size()
、イテレータを持ち、カスタム コンパレータで順序を維持できる必要があります。ConcurrentSkipListSet
基本的に、Javaの と同じことを行います。理想的には、プラットフォームに依存しない必要があります。
CDS: http://libcds.sourceforge.net/doc/cds-api/modules.htmlを見ていますが、どのデータ構造が目標を達成できるかわかりません。ドキュメントには、一部のデータ構造について実際には複雑さがありません。
どんな提案も素晴らしいでしょう、ありがとう!