Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/40: Рейтинг темы: голосов - 40, средняя оценка - 4.68
Заблокирован

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

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

Студворк — интернет-сервис помощи студентам
Есть ли в std::thread возможность как - то приостановить поток, не разрушая его, а потом, по какому - то сигналу / прерыванию - возобновить его работу?
Цель: в каждом потоке должен быть какой - то непрерывный цикл проверки входящего буфера на наличие сообщений для потока, если сообщения есть - что - то делаю, нет - ничего не делаю (дальше кручу цикл).
Так вот, если в каждом потоке делать while, то загрузка ЦП будет соответственно 100% (ну при наличие многих потоков). Хотелось бы как - то обойти этой вечный цикл ( по сути евент луп, проверяющий мессаги для потока).
Вот я и подумал, может как - то можно усыплять и пробуждать стандартные потоки, ну вот в WinAPI есть же всякие ResumeThread, но вроде это не очень хорошая практика.
Тут собственно есть пара нюансов:
1. Возможно ли это и если да, то как?
2. Много ли времени это жрёт и не проще ли просто удалять и создавать потоки?
3. Может есть какой - то другой фокус, чтоб для каждого потока проверять сообщения но не грузить его на всю катушку?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.11.2014, 16:00
Ответы с готовыми решениями:

Поток std::thread с шаблоном в классе
Доброго времени суток уважаемые! Уперся лбом в следующую проблему. При использовании параллельных потоков в основном потоке проблем...

Как грамотно усыпить поток
Всем доброго времени суток. Недавно заинтересовал вопрос "грамотного" усыпления потока, ясное дело хотелось бы развивать дискусию(если...

Как убить std::thread?
К сожалению мне так и не удалось найти информацию о том, как корректно убить std::thread в случае необходимости. Как правило, предлагают...

3
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
24.11.2014, 16:04
Лучший ответ Сообщение было отмечено -THE_MASTER666- как решение

Решение

Ответ на все вопросы - http://en.cppreference.com/w/c... n_variable
2
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
24.11.2014, 16:05
http://en.cppreference.com/w/c... n_variable
1
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
24.11.2014, 16:13
может тоже пригодится yield()
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.11.2014, 16:13
Помогаю со студенческими работами здесь

Использование std::function в std::thread
Нужно вызвать function fnc в новом потоке. Как сделать? function <void(vector<char>)> fnc; void test(vector<char> data) { ...

Ошибка компиляции "no instance of constructor 'std::thread::thread' matches the argument list"
Не могу сообразить почему возникает ошибка. У меня в классе есть метод, который должен работать в нескольких потоках одновременно. Вот он: ...

Boost::thread vs std::thread
Доброго времени суток, решил углубить свои знания, и решил почитать про потоки, бустовые и те что в 11 стандарте приняли, с бустом все ясно...

Как задать скорость обработки операций в потоке std::thread?
Процесс задается при помощи параметра «скорость обработки» - n операций в миллисекунду. Подскажите как это реализовать.

Стандартный поток и STL (std::copy to std::cout)
#include <iostream> #include <sstream> #include <algorithm> #include <functional> #include <string> using namespace std; ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru