Блокирующие блокировки и неблокирующие блокировки

Я думаю здесь: если у вас есть 2 потока, выполняющие операции FAST, которые необходимо синхронизировать, разве неблокирующий подход не быстрее / лучше, чем подход с блокировкой / переключением контекста?

Под неблокирующими я имею в виду что-то вроде:

while (true) { если (checkAndGetTheLock ()) перерыв; }

Единственное, о чем я могу думать, - это голодание (с выгоранием процессора), если у вас слишком много потоков, циклически обходящих блокировку.

Как сбалансировать один подход с другим?

5
задан user207421 27 February 2012 в 23:40
поделиться