Я думаю здесь: если у вас есть 2 потока, выполняющие операции FAST, которые необходимо синхронизировать, разве неблокирующий подход не быстрее / лучше, чем подход с блокировкой / переключением контекста?
Под неблокирующими я имею в виду что-то вроде:
while (true) { если (checkAndGetTheLock ()) перерыв; }
Единственное, о чем я могу думать, - это голодание (с выгоранием процессора), если у вас слишком много потоков, циклически обходящих блокировку.
Как сбалансировать один подход с другим?