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

Std::thread как усыпить/ пробудить поток? - C++

Восстановить пароль Регистрация
 
-THE_MASTER666-
Заблокирован
24.11.2014, 16:00     Std::thread как усыпить/ пробудить поток? #1
Есть ли в std::thread возможность как - то приостановить поток, не разрушая его, а потом, по какому - то сигналу / прерыванию - возобновить его работу?
Цель: в каждом потоке должен быть какой - то непрерывный цикл проверки входящего буфера на наличие сообщений для потока, если сообщения есть - что - то делаю, нет - ничего не делаю (дальше кручу цикл).
Так вот, если в каждом потоке делать while, то загрузка ЦП будет соответственно 100% (ну при наличие многих потоков). Хотелось бы как - то обойти этой вечный цикл ( по сути евент луп, проверяющий мессаги для потока).
Вот я и подумал, может как - то можно усыплять и пробуждать стандартные потоки, ну вот в WinAPI есть же всякие ResumeThread, но вроде это не очень хорошая практика.
Тут собственно есть пара нюансов:
1. Возможно ли это и если да, то как?
2. Много ли времени это жрёт и не проще ли просто удалять и создавать потоки?
3. Может есть какой - то другой фокус, чтоб для каждого потока проверять сообщения но не грузить его на всю катушку?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2014, 16:00     Std::thread как усыпить/ пробудить поток?
Посмотрите здесь:

C++ std::thread
C++ Как вывести std::wstring в поток?
Как убить std::thread? C++
C++ Стандартный поток и STL (std::copy to std::cout)
C++ Boost::thread vs std::thread
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
24.11.2014, 16:04     Std::thread как усыпить/ пробудить поток? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ответ на все вопросы - http://en.cppreference.com/w/cpp/thr...ition_variable
Nosey
 Аватар для Nosey
1185 / 352 / 102
Регистрация: 22.10.2014
Сообщений: 790
Завершенные тесты: 2
24.11.2014, 16:05     Std::thread как усыпить/ пробудить поток? #3
http://en.cppreference.com/w/cpp/thr...ition_variable
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
24.11.2014, 16:13     Std::thread как усыпить/ пробудить поток? #4
может тоже пригодится yield()
Yandex
Объявления
24.11.2014, 16:13     Std::thread как усыпить/ пробудить поток?
Ответ Создать тему
Опции темы

Текущее время: 22:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru