2015-04-17 3 views
1

Замки спина (блокировка ожидания ожидания) более эффективны, чем блокировки сна мьютекса для очень коротких критических секций. Предположим, что время переключения контекста для системы (время, которое требуется для , сохранить текущий процесс и загрузить следующий) - это время T. Как долго может быть критический раздел , прежде чем будет эффективнее использовать блокировку сна мьютекса, а не спиновый замок?блокировка спина против блокировки сна мьютекса

ответ

0

Это зависит от конкретного случая. Сколько времени процессора вы готовы сжигать на спиннинг, чтобы быстрее проснуться?

Intel однажды сказал 20 циклов. Но это было очень давно в те дни, когда было много потоков, чем ядра.

Если ваша ожидающая нить очень важна для вас, у нее будет собственное выделенное ядро, и вы не хотели бы вращаться навсегда в интересах самого быстрого пробуждения.

Если это менее важно, и ядро ​​разделяется с другими потоками, вы можете указать время процессора другому каналу. Если вы этого не сделаете, ОС в конечном итоге сделает это за вас, но это, пожалуй, менее оптимально.

Нижняя линия - проверьте и проверьте различия в характеристиках, а затем повторите повторную проверку, повторное испытание и т. Д.

Смежные вопросы