Как проверить, что все потоки свободны в фиксированном пуле потоков?

#multithreading #threadpool

#многопоточность #threadpool

Вопрос:

Мне нужно проверить, что все потоки свободны в фиксированном пуле потоков. зависит от этого, я выполню какую-нибудь другую задачу с потоком … есть ли какой-нибудь способ ее найти?

Комментарии:

1. GetAvailableThreads минус GetMaxThreads

Ответ №1:

Просто реализуйте пул как стек.

Когда вам нужен поток, извлеките его из стека и используйте.

Когда вы закончите с потоком, поместите его обратно в стек.

Если стек пуст, блокируйте до тех пор, пока поток не станет доступен.

Однако я бы рекомендовал использовать библиотеку (на используемом вами языке), которая создает пул потоков / управляет им, вместо создания вашего собственного.