Я думаю здесь: Если у вас есть 2 потока, выполняющих операции FAST, которые необходимо синхронизировать, не является ли неблокирующий подход быстрее/лучше, чем подход блокировки/контекстного переключения?Блокирующие блокировки и блокирующие блокировки
По неблокирующая я имею в виду что-то вроде:
время (правда) { если (checkAndGetTheLock)() перерыв; }
Единственное, что я могу придумать, это голодание (с выгоранием процессора), если у вас слишком много потоков, связанных вокруг блокировки.
Как сбалансировать один подход по сравнению с другим?
Сколько операций блокировки вы будете выполнять за процессор в секунду? – usr
AFAIK, JVM делает эту оптимизацию для вас, если нет конкуренции на блокировке (что должно быть, если операция выполняется быстро) –
@JB Nizet: Думаю, вам нужно принять это решение самостоятельно, используя синхронизированный или ReentrantLock. – chrisapotek