Когда структуры данных без блокировки менее производительны, чем взаимные исключения (мьютексы)?
Я где-то читал (больше не могу найти страницу), что блокировка свободных структур данных более эффективна «для определенных рабочих нагрузок», что, по-видимому, подразумевает, что иногда они на самом деле медленнее или выигрыш от них может быть нулевым в некоторых ситуациях. Принятие команды блокировки на ~ 100 циклов для выполнения атомарной операции звучит для меня гораздо быстрее, чем переход в спящий режим и ожидание, пока планировщик не восстановит процесс, поэтому для меня не очевидно, при каких обстоятельствах структура данных без блокировки будет менее предпочтительным, чем старомодные мьютексы. Если блокировка доступна в 99% случаев и процесс не должен идти в спящий режим, будет ли тогда мьютекс быстрее? Есть ли хорошее эмпирическое правило для того, чтобы знать, каким путем можно предположить, что доступна подходящая структура данных без блокировки?