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żonychObject
s 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?