Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 5, 2015 18:17:25

lobster
От:
Зарегистрирован: 2011-06-09
Сообщения: 82
Репутация: +  0  -
Профиль   Отправить e-mail  

менеджер потоков

Всех приветствую!
Когда необходим скрипт с использованием потоков, обычно делаю примерно так:

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() которая проверяет состояние потока, сразу пришло в голову создать отдельный поток который проверяет в цикле с задержкой каждый из потоков на живучесть, но это как мне кажется расточительно по ресурсам. Возможно ли это сделать иммено по событию?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version