Зачем Pthread_cond_wait мьютекс?
Зачем Pthread_cond_wait мьютекс?

Видео: Зачем Pthread_cond_wait мьютекс?

Видео: Зачем Pthread_cond_wait мьютекс?
Видео: Multithreading в swift с нуля: урок 5 - NSCondition,NSLocking, pthread_cond_t 2024, Май
Anonim

В мьютекс используется для защиты самой переменной условия. Вот почему ты необходимость он заперт перед тобой делать Ждите. Затем, когда переменная условия передана или передана в широковещательном режиме, один или несколько потоков в списке ожидания будут разбужены, и мьютекс будет снова волшебным образом заблокирован для этого потока.

В связи с этим, разблокирует ли Pthread_cond_wait мьютекс?

В pthread_cond_wait () блокирует вызывающий поток по условной переменной cond, и открывает связанный мьютекс мьютекс . Вызывающий поток должен быть заблокирован мьютекс перед ожиданием переменной условия. По возвращении из функции мьютекс снова заблокирован и принадлежит вызывающему потоку.

Впоследствии возникает вопрос, а зачем нужен мьютекс? Это гарантирует, что только один поток выполняет ключевой фрагмент кода за раз, что, в свою очередь, ограничивает доступ к структуре данных. Это гарантирует, что оба потока имеют полное и правильное представление об этой памяти независимо от переупорядочения ЦП. В мьютекс является абсолютной необходимостью при параллельном программировании.

Кроме того, зачем условным переменным мьютекс?

В мьютекс используется для защиты переменная состояния сам. Вот почему ты необходимость он заперт перед тобой делать Ждите. Затем, когда переменная состояния сигнализируется или транслируется в один или несколько потоков в списке ожидания буду проснуться и мьютекс будет быть снова магически заблокированным для этой нити.

Зачем нам нужны условные переменные?

Переменные условия позвольте набору нитей спать, пока они не пощекотятся! Вы можете пощекотать одну или все спящие нитки. Если вы разбудите только один поток, операционная система решит, какой поток активировать.

Рекомендуемые: