В этой статье мы детально разберем атомарные операции и барьеры памяти C++11 и генерируемые ими ассемблерные инструкции на процессорах x86\_64.
Далее мы покажем как ускорить работу **contfree\_safe\_ptr<std::map>** до уровня сложных и оптимизированных **lock-free** структур данных аналогичных по функциональности std::map<>, например: SkipListMap и BronsonAVLTreeMap из библиотеки libCDS (Concurrent Data Structures library): [github.com/khizmax/libcds][1]
И такую многопоточную производительность мы сможем получить для любого вашего изначально потоко-**не**безопасного класса T используемого как contfree\_safe\_ptr<T>. Нас интересуют оптимизации повышающие производительность на ~1000%, поэтому мы не будем уделять внимание слабым и сомнительным оптимизациям.
[Читать дальше →][2]
[1]:
https://github.com/khizmax/libcds
[2]:
https://habrahabr.ru/post/328362/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut