Очередь без блокировок

Основной способ повышения производительности программного обеспечения в современных многопроцессорных системах заключается в разделении задачи между несколькими потоками. Производительность многопоточных программных систем, в свою очередь, зависит от скорости синхронизации и обмена данными между потоками. Традиционные методы синхронизации и обмена данными между потоками используют блокирующие примитивы синхронизации, такие как мьютексы, семафоры и критические секции. Основные недостатки этого подхода, приводящие к потере производительности, отмечены в [1]. В данной статье предлагается метод решения одной часто возникающей задачи – создание безблокировочной очереди сообщений, с несколькими потоками, отправляющими сообщения, и одним потоком-читателем сообщений.

Читать дальше...

Другие алгоритмы


http://www.symmetrica.net