Es kann ja aber auch nicht der Sinn sein, jedesmal eine neue Instanz der Klasse zu erzeugen, wenn der Thread gestartet werden soll, oder?
Doch, genau das ist der Sinn.
Welche Intention steckt also hinter diesem Design? Aus der Doku geht nicht hervor, das ein Thread nicht neugestartet werden darf, wenn er beendet wurde.
Ein Thread *kann* auf Betriebssystemebene nur einmal gestartet werden. Wenn er das nächste Mal gestartet wird, ist es ein anderer Thread. Jeder Thread hat eine Thread-Id, die einmalig ist und für jeden anderen Thread anders ist. Die Python-Thread-Klasse folgt diesem Modell. Wenn man für ein Thread-Objekt .join() ausführt, dann meint man damit den eindeutigen, einmaligen Betriebssystem-Thread. Nachdem der Thread zuende ist, muss .join() sofort wiederkehren. Diese Semantik wäre verletzt, wenn das gleiche Python-Thread-Objekt nacheinander verschiedene Threads repräsentieren würde. Ciao, Martin