A collection of lock-free data structures written in standard C++11
From the FAQ:<p>> The biggest reason you would want to use a lockfree data structure in such a scenario would be performance. Locking has a non-neglegible runtime cost on hosted systems as every lock requires a syscall.<p>This is misleading.  While a lock does have a runtime cost, in some cases that cost is less than all the force CPU cache synchronization calls that lock free needs to do.  With a lock you only have to sync once, after all the operations are done.  You need to carefully measure this to see which is more performant for your application.