Вот фрагмент кода 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())