Сравнение спин-блокировок и семафоров

We use cookies. Read the Privacy and Cookie Policy

Сравнение спин-блокировок и семафоров

Понимание того, когда использовать спин-блокировки, а когда семафоры является важным для написания оптимального кода. Однако во многих случаях выбирать очень просто. В контексте прерывания могут использоваться только спин-блокировки, и только семафор может удерживаться процессом, который находится в состоянии ожидания. В табл. 9.6 показан обзор требований того, какой тип блокировок использовать.

Таблица 9.6. Что следует использовать: семафоры или спин-блокировки

Требование Рекомендуемый тип блокировки Блокировка с малыми накладными затратами (low overhead) Спин-блокировки более предпочтительны Малое время удержания блокировки Спин-блокировки более предпочтительны Длительное время удержания блокировки Семафоры более предпочтительны Необходимо использовать блокировку в контексте прерывания Необходима спин-блокировка Необходимо переходить в состояние ожидания (steep) при захваченной блокировке Необходимо использовать семафоры