ich diese meine einfachen Code renne:Threading ignoriert KeyboardInterrupt Ausnahme
import threading, time
class reqthread (threading.Thread):
def __init__ (self):
threading.Thread.__init__(self)
def run (self):
for i in range(0,10):
time.sleep(1)
print '.'
try:
thread=reqthread()
thread.start()
except (KeyboardInterrupt, SystemExit):
print '\n! Received keyboard interrupt, quitting threads.\n'
Aber wenn ich es laufen, gibt es
$ python prova.py
`
.
.
^C.
.
.
.
.
.
.
.
Exception KeyboardInterrupt in <module 'threading' from '/usr/lib/python2.6/threading.pyc'> ignored
`
In der Tat Python Thread ignorieren meine Ctrl +C Tastatur Interrupt und druckt nicht Received Keyboard Interrupt
. Warum? Was ist falsch an diesem Code?
Ich glaube, ein Timeout auf 'join', das heißt' während thread.isAlive: Thread.Join (5) 'wird auch die Haupt-Thread, die auf Ausnahmen halten arbeiten. –
'thread.daemon = true' tatsächlich wird nicht empfohlen, da es nicht der Thread keine Ressourcen hinter sich gelassen, um aufzuräumen erlaubt ... –