Да, pthread_cond_wait
, в случае успеха заставляет поток ждать уведомления.Это цель вызова.
sem_wait
переведет поток в состояние ожидания , если семафор не может быть уменьшен.В высоком состоянии вызов будет немедленно возвращен.
В большинстве случаев вам не нужно беспокоиться о том, реализованы ли блокировки с помощью ожидания занятости или выдачи планировщика.В любом случае вы получаете гарантированное поведение, и, как правило, разработчик библиотеки выбирает наиболее эффективный метод, доступный на платформе, на которой вы работаете.В некоторых случаях (когда у вас более одного ядра и ожидаемое время ожидания мало) это ожидание занято.