Всех приветствую!
Когда необходим скрипт с использованием потоков, обычно делаю примерно так:
import threading
class SomeThread(threading.Thread):
def __init__(self):
super(SomeThread, self).__init__()
self.start()
def run(self):
thname = threading.current_thread()
print("Hello Thread: %s" % (thname))
[SomeThread() for _ in range(5)]
Сейчас мне нужно чтобы кажый из потоков выполнял некоторые действия в цикле бесконечно, но если к примеру какой-то поток сгенерирует исключение он будет убит. Вобщем мне бы хотелось сделать типа пула потоков, коллбэк функцию или другой поток который контролирует кол-во запущенных потоков, к примеру если поток завершается и не важно корректно или с исключением, тут же удаляется этот объект из пула и генерируется новый поток. Вот есть функция is_alive() которая проверяет состояние потока, сразу пришло в голову создать отдельный поток который проверяет в цикле с задержкой каждый из потоков на живучесть, но это как мне кажется расточительно по ресурсам. Возможно ли это сделать иммено по событию?