Thread beenden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
flyingfish
User
Beiträge: 33
Registriert: Sonntag 23. Januar 2005, 23:36

Hallo,

ich habe ein hauptprogramm mit mehreren Threads.
In den Threads passiert sowas wie

Code: Alles auswählen

         
while(1):
           try:
             (newSocket, address) = sock.accept()
             
             received = newSocket.recv(1024)
 
oder

Code: Alles auswählen

         while(1):
           try:
             do something
             
            time.sleep(9000)

Wenn ich das Hauptprogramm durch Signal TERM beende, möchte ich natürlich die Threads auch beenden...
Da die Threads sich aber in einer Warteposition befinden, kann ich ja nicht eine Variable abfragen oder so..
Dem Socketthread könnte ich ja "Term" senden, aber dem Thread der schläft?
Hat jemand eine Idee :?:

Vielen Dank,
Flyingfish
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

flyingfish hat geschrieben: Dem Socketthread könnte ich ja "Term" senden, aber dem Thread der schläft?
Hi!
Lasse den Thread nur jeweils eine Sekunde schlafen. Prüfe einfach jede Sekunde, ob der Thread wieder schlafen gehen oder sich beenden soll.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
flyingfish
User
Beiträge: 33
Registriert: Sonntag 23. Januar 2005, 23:36

Ok, danke!

Habe eben gerade noch eine andere Möglichkeit gefunden.
Wenn ich den Thread kurz vorher mit

Code: Alles auswählen

h = myThread()
h.setDaemon(1)
h.start()
als Daemon Thread markiere, wird dieser automatisch beendet, wenn alle nicht Daemon Threads beendet sind, z.B. wenn ich mein Hauptprogramm beende...

Gruss,

Flyingfish
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

flyingfish hat geschrieben:...als Daemon Thread markiere, wird dieser automatisch beendet
Klingt auch nicht schlecht 8)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten