Насколько эффективен try_lock
на мьютексе?Т.е. сколько там инструкций на ассемблере, вероятно, и сколько времени они занимают в обоих возможных случаях (т. Е. Мьютекс уже был заблокирован или был свободен и мог быть заблокирован).проблемы, чтобы ответить на вопрос, вот как (в случае, если это действительно неясно):
Если этот ответ во многом зависит от реализации ОС и аппаратного обеспечения: Пожалуйста, ответьте на него для распространенных ОС (например, Linux), Windows, MacOSX), последние их версии (если они сильно отличаются от предыдущих версий) и общее оборудование (x86, amd64, ppc, arm).
Если это также зависит от библиотеки: возьмите pthreadв качестве примера.
Пожалуйста, ответьте, если они действительно отличаются.И если они отличаются, пожалуйста, укажите различия.Т.е. что они делают по-другому?Какие общие алгоритмы существуют вокруг?Существуют ли разные алгоритмы вокруг или все ли общие системы (общие для приведенного выше списка, если это неясно) реализовали взаимные исключения точно так же?это действительно должен быть отдельный вопрос.
Кроме того, я задал этот вопрос отдельно от производительности lock
, поскольку я не уверен, что try_lock
может вести себяразные.Возможно также в зависимости от реализации.Опять же, пожалуйста, ответьте на него для общих реализаций.И этот очень похожий / связанный вопрос, очевидно, показывает, что это интересный вопрос, на который можно ответить.