Dlaczego instancja musi zostać odtworzona podczas ponownego uruchamiania wątku?

Wyobraź sobie następujące klasy:

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()

Chcę zrestartować wątek na wypadek, gdyby był martwy. To nie działa. Ponieważ wątki można uruchomić tylko raz. Pierwsze pytanie. Dlaczego to?

O ile wiem, muszę odtworzyć każdą instancjęObject i zadzwoństart() aby ponownie uruchomić wątek. W przypadku złożonychObjects to nie jest zbyt praktyczne. Muszę przeczytać aktualne wartości staregoObject, utwórz nowy i ustaw parametry w nowym obiekcie za pomocą starych wartości. Drugie pytanie: czy można to zrobić w mądrzejszy, łatwiejszy sposób?

questionAnswers(3)

yourAnswerToTheQuestion