#multithreading #threadpool
#многопоточность #threadpool
Вопрос:
Мне нужно проверить, что все потоки свободны в фиксированном пуле потоков. зависит от этого, я выполню какую-нибудь другую задачу с потоком … есть ли какой-нибудь способ ее найти?
Комментарии:
1. GetAvailableThreads минус GetMaxThreads
Ответ №1:
Просто реализуйте пул как стек.
Когда вам нужен поток, извлеките его из стека и используйте.
Когда вы закончите с потоком, поместите его обратно в стек.
Если стек пуст, блокируйте до тех пор, пока поток не станет доступен.
Однако я бы рекомендовал использовать библиотеку (на используемом вами языке), которая создает пул потоков / управляет им, вместо создания вашего собственного.