Имеет цикл, который на данный момент создает новый поток для каждого элемента из массива:
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 поток что бы обработка данных занимала его, и так далее.