Задать вопрос
includedlibrary
@includedlibrary

Как ограничить число исполняемых потоков?

Есть n количество заданий в очереди, каждое из которых исполняется в отдельном потоке. Нужно сделать так, что бы одновременно исполнялось только 2 потока. Например, два потока, один из них завершился, нужно запустить из main ещё один поток.
  • Вопрос задан
  • 77 просмотров
Подписаться 1 Простой Комментировать
Ответ пользователя res2001 К ответам на вопрос (2)
@res2001
Developer, ex-admin
Если поток присоединенный, то в main можно его подождать с помощью thread join, если не присоединенный - выставляйте в потоке перед самым завершением какой-нибудь флаг означающий завершение потока. В main проверяете флаг.
Но "технологичнее" сделать так, что когда поток выполнил одно задание, он снова полез в очередь и взял оттуда другое задание. Если заданий нет, то пусть ждет. В этом вам помогут примитивы синхронизации типа мьютексов и т.п.
Ответ написан
Комментировать