Как часто вы на самом деле используете спин-блоки в своем коде? Насколько распространено это сталкиваться с ситуацией, когда использование цикла занятости фактически превосходит использование блокировок?
Лично, когда я пишу какой-то код, который требует безопасности потоков, я склонен сравнивать его с разными примитивами синхронизации, и, насколько это возможно, похоже, что использование блокировок дает лучшую производительность, чем использование spindlock. Независимо от того, как мало времени я держу в замке, количество споров, которые я получаю при использовании шпиндельных заслонок, намного больше, чем количество, которое я получаю от использования блокировок (конечно, я запускаю свои тесты на многопроцессорной машине).
Я понимаю, что он с большей вероятностью встретит спин-блокировку в коде "низкого уровня", но мне интересно узнать, полезно ли вам использовать его даже при более высоком уровне программирования?