Почему Python не исправляет висячие темы? - PullRequest
0 голосов
/ 19 сентября 2018

Вот фрагмент кода Python.Как показывает стандартный вывод, активные потоки продолжают увеличиваться, пока ОС не скажет, что у вас слишком много потоков.Почему Python не возвращает потоки в thread_pool после выполнения всех задач?

from multiprocessing.dummy import Pool as ThreadPool
import threading

count = 0

def fun(i):
    pass

while True:
    count += 1
    data = list(range(1, 100))
    thread_pool = ThreadPool(30)
    thread_pool.map(fun, enumerate(data))
    print(count, 'end', threading.active_count())

1 Ответ

0 голосов
/ 19 сентября 2018

Используйте менеджер контекста, если хотите, чтобы все было завершено должным образом

with ThreadPool(30) as pool:
    pool.map(fun, enumerate(data))
...