Форум программистов, компьютерный форум CyberForum.ru

Уведомления между потоками - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Когда в ОС используется COM ? http://www.cyberforum.ru/cpp-beginners/thread1506576.html
Для каких действий ОС использует COM технологию ? Всегда ли она используется при исполнении exe файлов?
C++ Где найти все глаголы для ShellExecute ? Здравствуйте. Где и как посмотреть список допустимых глаголов системы? Знаю о существовании страницы в msdn , но функция которую я нашел в интернете и использую использует глагол "runas", которого нет на странице. http://www.cyberforum.ru/cpp-beginners/thread1506564.html
Write some short C or C++ code to generate a segmentation fault C++
Write some short C or C++ code to generate a segmentation fault
Write some short C or C++ code to generate a stack overflow C++
Write some short C or C++ code to generate a stack overflow
C++ Write some short C or C++ code that slowly leaks memory until all the resources are consumed http://www.cyberforum.ru/cpp-beginners/thread1506552.html
сабж :D
C++ Какие существуют типы компилляторной оптимизации? What are some compiler optimizations that you know (ie. loop unrolling, constant folding, etc)? :) подробнее

Показать сообщение отдельно
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
29.07.2015, 13:02     Уведомления между потоками
Цитата Сообщение от eagl69 Посмотреть сообщение
А зачем тогда придуманы эти condition_variable если и проверкой в цикле переменной вполне можно обойтись?
Нельзя. Условные переменные это тот самый механизм, который позволяет ждать события не загружая систему.
Более того если пользоваться циклом переменная должна быть атомарна, либо необходимо заводить мъютекс для защиты флага.

Цитата Сообщение от eagl69 Посмотреть сообщение
А можно послать уведомление одному из 10 потоков? а не всем сразу? например по его ID?
Да. Функцией notify_one(). Разбудить все ожидающие потоки позволяет функция notify_all() условной переменной.
Что бы разбудить конкретный поток заведите для него отдельную условную переменную, ибо стандарт не дает никаких гарантий относительно того какой поток будет разбужен функцией notify_one().
 
Текущее время: 00:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru