Seite 1 von 1

Zwei Fragen zu threading

Verfasst: Mittwoch 17. Mai 2006, 09:01
von HarryH
Hallo,

Ich habe zwei Fragen zu threading:
1. Wie kann ich aus einem Thread heraus den Mainthread beenden?
2. Wenn ich bei einem Thread den 'daemon flag' setzte und dann meine Hauptprogramm beende, während der Thread z.B. gerade in eine Datei schreibt, wird diese dabei zerstört, oder?

Schon mal Danke, für eure Antworten!

Verfasst: Mittwoch 17. Mai 2006, 13:09
von Gromit
ad 1.) Beenden eines Threads durch einen zweiten Thread wird im allgemeinen Fall nicht unterstützt. Du kannst allerdings dem Main-Thread eine KeyboardInterrupt-Excpetion schicken. Siehe: http://docs.python.org/lib/module-thread.html#l2h-2692

ad 2.) Das Schicksal einer Datei, in die geschrieben wird, hängt stark davon ab, wie du schreibst. Fileobjekte haben eine flush-Methode, welche das schreiben erzwingt. Das verhindert allerdings nicht, das zuviel geschrieben wird.

Wann eine Datie zerstört ist, wird durch das Dateiformat definiert, kann also im allgemeinen Fall nicht beantwortet werden.

re:

Verfasst: Mittwoch 17. Mai 2006, 15:53
von HarryH
Danke für deine Antwort, Gromit!

Doch, wie fange ich die KeyboardInterrupt-Excpetion in meinem Hauptprogramm ab?

Re: re:

Verfasst: Mittwoch 17. Mai 2006, 16:14
von gerold
HarryH hat geschrieben:wie fange ich die KeyboardInterrupt-Excpetion in meinem Hauptprogramm ab?
Hi HarryH!

Nur so als Hinweis :-)

Code: Alles auswählen

>>> import exceptions
>>> try:
...     raise exceptions.KeyboardInterrupt("Hallo")
... except exceptions.KeyboardInterrupt, data:
...     print data
...     
Hallo
>>> 
Das geht auch ohne "import".

mfg
Gerold
:-)