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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
-THE_MASTER666-
Заблокирован
#1

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

24.11.2014, 16:00. Просмотров 933. Ответов 3
Метки нет (Все метки)

Есть ли в 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++ Boost::thread vs std::thread
Многопоточность в C++11. std::thread C++
C++ Как задать скорость обработки операций в потоке std::thread?
Копирование объектов std::thread C++
C++ Std::thread автоматическая многопоточность
Std::thread приостановка потока C++
Std::thread в классе C++
C++ Указатели и std::thread
C++ Std::thread::detach()

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2442 / 1614 / 235
Регистрация: 24.11.2012
Сообщений: 3,961
24.11.2014, 16:04     Std::thread как усыпить/ пробудить поток? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ответ на все вопросы - http://en.cppreference.com/w/cpp/thr...ition_variable
Nosey
 Аватар для Nosey
1203 / 370 / 106
Регистрация: 22.10.2014
Сообщений: 813
Завершенные тесты: 2
24.11.2014, 16:05     Std::thread как усыпить/ пробудить поток? #3
http://en.cppreference.com/w/cpp/thr...ition_variable
aLarman
640 / 561 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
24.11.2014, 16:13     Std::thread как усыпить/ пробудить поток? #4
может тоже пригодится yield()
Yandex
Объявления
24.11.2014, 16:13     Std::thread как усыпить/ пробудить поток?
Ответ Создать тему
Опции темы

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