나는이 다음과 같은 대체하기 위해 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을보고 있지만 어떤 데이터 구조가 목표를 달성 할 수 있는지 확실하지 않습니다. 의사는 실제로 일부 데이터 구조에 대해 복잡성이 없습니다.
의견을 보내 주시면 감사하겠습니다. C++ 11
이
귀하의 플랫폼은 무엇입니까? 창문이라면 PPL을 탐색 할 수 있습니다 (http://msdn.microsoft.com/en-us/library/dd504906.aspx). – Jagannath
당신이 해결하려고하는 진짜 문제가 여기에 있는지 물어야합니다. 그런 잠금 장치가없는 컨테이너를 발견하고 전략적으로 정상 세트에서 잠금 장치를 사용하는 것보다 속도가 느려질 수 있습니다. –
'ConcurrentSkipListSet'에 lock-free가 있습니까? –