[Python-de] Thread ein 2. Mal starten
"Martin v. Löwis"
martin at v.loewis.de
Mo Mär 26 23:18:37 CEST 2007
> 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
Mehr Informationen über die Mailingliste python-de