Представьте себе следующие классы:
Class Object(threading.Thread):
# some initialisation blabla
def run(self):
while True:
# do something
sleep(1)
class Checker():
def check_if_thread_is_alive(self):
o = Object()
o.start()
while True:
if not o.is_alive():
o.start()
Я хочу перезапустить поток, если он мертв. Это не работает. Поскольку потоки можно запускать только один раз. Первый вопрос. Почему это?
Насколько мне известно, мне нужно воссоздать каждый экземпляр Object
и вызвать start()
, чтобы снова запустить поток. В случае комплекса Object
это не очень практично. Я должен прочитать текущие значения старого Object
, создать новый и установить параметры в новом объекте со старыми значениями. Второй вопрос: можно ли это сделать более умным, более простым способом?