Вы можете взглянуть на библиотеку libcds C ++. Это коллекция контейнеров без блокировок (стеки, очереди, наборы и карты) и алгоритмы безопасного восстановления памяти.
ИМХО относительно C ++ (я не продвинут в других языках). Новый стандарт C ++ был только что выпущен, и разработчикам компилятора нужно время, чтобы реализовать его требования. Сегодня все компиляторы не поддерживают модель памяти C ++ 11 полностью, поскольку она требует значительных изменений в правилах оптимизации компилятора. Недавно Microsoft объявляет о поддержке атомарных операций, которые являются основой программирования без блокировок в VC ++ 11 Developer Preview. Это хорошая новость для нас. Как я знаю, GCC поддержит его в 4.8 (или выше).
Вторая проблема - патенты. Многие интересные алгоритмы контейнеров без блокировки запатентованы, что является препятствием для их включения в библиотеки поставщиков.
В-третьих, основная часть контейнеров без блокировок - это сбор мусора (безопасное восстановление памяти). C ++ свободен от любого GC (к счастью). Существует несколько алгоритмов GC (Hazard Pointer, Pass-the-Buck, основанных на эпохах и т. Д.), Но большинство из них также запатентованы.
В-четвертых, недостаточно инструментов, чтобы доказать правильность ограничений памяти, примененных в вашей реализации без блокировки. Теперь я знаю только одну - реляцию (http://www.1024cores.net/home/relacy-race-detector).
Я думаю, что через 2-3 года мы увидим много готовых к работе многоплатформенных библиотек C ++ без блокирующих контейнеров и алгоритмов. Эти библиотеки разрабатываются продавцами и энтузиастами.
Однако, на мой взгляд, наше будущее - это аппаратная память транзакций (HTM). Сегодня AMD, Sun (извините, Oracle), Intel (?) Исследуют HTM с очень интересными результатами. Давайте подождем.