@maffiozi

Как в Python ограничить кол-во потоков?

Имеет цикл, который на данный момент создает новый поток для каждого элемента из массива:
for base in core_bases:
    name_thread = "thread %s " % (item_lst + 1)
    thread = CoreCheck(base, name_thread)
    thread.start()
    time.sleep(0.2)


Каким образом можно реализовать допустим ограничение в 100 потоков, забиваем циклом 100 потоков, и если освобождается допустим 5 поток что бы обработка данных занимала его, и так далее.
  • Вопрос задан
  • 1154 просмотра
Решения вопроса 2
JaxxDexx
@JaxxDexx
Использовать пул
Вместо пула процессов, можете использовать пул потоков:
from multiprocessing.pool import ThreadPool
Ответ написан
Комментировать
@maffiozi Автор вопроса
реализовал вот так
def main(lst):
    with Pool(GlobalBase.max_threads) as p:
        p.map(core_check, lst)
    p.close()
    p.join()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы