Замки спина (блокировка ожидания ожидания) более эффективны, чем блокировки сна мьютекса для очень коротких критических секций. Предположим, что время переключения контекста для системы (время, которое требуется для , сохранить текущий процесс и загрузить следующий) - это время T. Как долго может быть критический раздел , прежде чем будет эффективнее использовать блокировку сна мьютекса, а не спиновый замок?блокировка спина против блокировки сна мьютекса
1
A
ответ
0
Это зависит от конкретного случая. Сколько времени процессора вы готовы сжигать на спиннинг, чтобы быстрее проснуться?
Intel однажды сказал 20 циклов. Но это было очень давно в те дни, когда было много потоков, чем ядра.
Если ваша ожидающая нить очень важна для вас, у нее будет собственное выделенное ядро, и вы не хотели бы вращаться навсегда в интересах самого быстрого пробуждения.
Если это менее важно, и ядро разделяется с другими потоками, вы можете указать время процессора другому каналу. Если вы этого не сделаете, ОС в конечном итоге сделает это за вас, но это, пожалуй, менее оптимально.
Нижняя линия - проверьте и проверьте различия в характеристиках, а затем повторите повторную проверку, повторное испытание и т. Д.
Смежные вопросы
- 1. Блокировка блокировки мьютекса WinAPI
- 2. Ruby STDIN, блокировка против блокировки
- 3. блокировка мьютекса в Nant
- 4. Случайная ошибка блокировки мьютекса
- 5. Рекурсивная блокировка (Mutex) против нерекурсивной блокировки (Mutex)
- 6. Блокировка по имени (альтернативы мьютекса)
- 7. Блокировка мьютекса несколькими подпроцессами
- 8. Что означает блокировка блокировки мьютекса с недопустимым аргументом?
- 9. блокировка interprocess блокировки notify_all
- 10. Page Блокировка против блокировки таблицы Oracle
- 11. явная блокировка против реализации неявной блокировки
- 12. Заблокировать вопрос - блокировка «U» против блокировки «X»
- 13. Как блокировка мьютекса ждет разблокировки на низком уровне?
- 14. C++ condition_variable проблема блокировки мьютекса
- 15. блокировки мьютекса не отпирания
- 16. Блокировка блокировки блокировки
- 17. Использование ссылки на объект как блокировка мьютекса
- 18. Блокировка и синхронизация с помощью мьютекса
- 19. Блокировка мьютекса и доступа к диску
- 20. using dispatch_sync как блокировка мьютекса
- 21. C++ многопотоковая блокировка мьютекса «reset»
- 22. Постоянная блокировка мьютекса, вызывающая тупик?
- 23. Блокировка мьютекса в общей памяти
- 24. Блокировка мьютекса в деструкторе в C++ 11
- 25. Когда блокировка мьютекса с классом C++
- 26. мьютекса против выпуска объекта
- 27. концепция блокировки семафора и мьютекса
- 28. Как реализовано использование мьютекса (блокировки)?
- 29. Ошибка сегментации путем блокировки мьютекса
- 30. Вызов pthread_cond_signal без блокировки мьютекса