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

Проще говоря, семафор - это operating-system "уступающий" объект синхронизации, спин-блокировка unix-programming - это "ожидание занятости". (семафоры cpp немного больше в том смысле, что unix-programming они синхронизируют несколько c потоков, в отличие от мьютекса, защиты, монитора linux или критического раздела, который unix-programming защищает область кода от unix-programming одного потока)

Вы бы использовали unix-utils семафор в большем количестве cxx обстоятельств, но используйте c++ спин-блокировку, когда вы c++ собираетесь блокировать на unix-programming очень короткое время - блокировка operating-systems стоит дорого, особенно если os вы блокируете много. В таких unix случаях может быть более os эффективным выполнить спин-блокировку unix-programming на некоторое время, ожидая linux разблокировки защищенного cpp ресурса. Очевидно, что если c++ вы слишком долго вращаете, это c++ снизит производительность.

обычно, если cxx вы вращаетесь дольше кванта c++ потока, вам следует использовать cpp семафор.

c++

c

linux

unix

operating-system

2022-09-02T04:27:34+00:00
Вопросы с похожей тематикой, как у вопроса:

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