Когда структуры данных без блокировки менее производительны, чем взаимные исключения (мьютексы)?

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

Ответы на вопрос(6)

Ваш ответ на вопрос