Если с C ++ все в порядке, взгляните на boost :: lockfree . Он имеет реализацию Queue, Stack и Ringbuffer без блокировки.
В разделе boost::lockfree::details
вы найдете свободную от блокировок реализацию freelist и тегового указателя (предотвращение ABA). Вы также увидите примеры явного упорядочения памяти через boost :: atomic (версия C ++ 0x std::atomic
в разработке).
И boost::lockfree
, и boost::atomic
еще не являются частью boost
, но оба заметили внимание в списке рассылки boost-development и находятся в расписании для рассмотрения.