Запитання з тегом «condition-variable»

10
Чому для змінних функцій pthreads потрібна mutex?
Я читаю далі pthread.h; функції, пов'язані зі змінною умови (як pthread_cond_wait(3)), потребують mutex як аргумент. Чому? Наскільки я можу сказати, я буду створювати мютекс просто для використання в якості аргументу? Що це мутекс?

6
Чи потрібно отримувати блокування перед викликом condition_variable.notify_one ()?
Я трохи заплутаний щодо використання std::condition_variable. Я розумію , що я повинен створити unique_lockна mutexперед викликом condition_variable.wait(). Я не можу знайти, чи слід мені також придбати унікальний замок перед дзвінком notify_one()або notify_all(). Приклади на cppreference.com суперечливі. Наприклад, на сторінці notify_one подано такий приклад: #include <iostream> #include <condition_variable> #include <thread> #include …

3
Виклик pthread_cond_signal без блокування mutex
Я десь читав, що нам слід заблокувати мьютекс перед викликом pthread_cond_signal і розблокувати мьютекс після його виклику: Підпрограма pthread_cond_signal () використовується для сигналізації (або пробудження) чергового потоку, який очікує на змінну умови. Його слід викликати після того, як mutex заблоковано, і він повинен розблокувати мьютекс, щоб завершити процедуру pthread_cond_wait (). …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.