¿Por qué es necesario volver a crear la instancia al reiniciar un hilo?

Imagina las siguientes clases:

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

Quiero reiniciar el hilo en caso de que esté muerto. Esto no funciona. Porque los hilos solo se pueden iniciar una vez. Primera pregunta. ¿Por qué es esto?

Por lo que sé, tengo que recrear cada instancia deObject y llamastart() para iniciar el hilo de nuevo. En caso de complejos.Objects esto no es muy practico Tengo que leer los valores actuales de los viejos.Object, cree uno nuevo y establezca los parámetros en el nuevo objeto con los valores antiguos. Segunda pregunta: ¿Se puede hacer esto de una manera más inteligente y fácil?

Respuestas a la pregunta(3)

Su respuesta a la pregunta