[Python-de] Thread-Objekte mehrfach starten
Gerson Kurz
Gerson.Kurz at t-online.de
Mon Jul 15 20:23:46 EDT 2002
Thread-Objekte können nicht mehrfach gestartet werden. Dieses "Feature"
scheint mir zumindest undokumentiert. Der folgende Code
---------------------------------------------------------
import threading, Queue
class test(threading.Thread):
def run(self):
print "begin und ende von %s" % threading.currentThread()
t = test()
t.start()
t.join(20) # wait 4 thread 2 finish
t.start()
---------------------------------------------------------
führt zu
---------------------------------------------------------
>>> begin und ende von <test(Thread-5, started)>
Traceback (most recent call last):
File
"C:\Python22\Lib\site-packages\Pythonwin\pywin\framework\scriptutils.py",
line 298, in RunScript
debugger.run(codeObject, __main__.__dict__, start_stepping=0)
File "C:\Python22\Lib\site-packages\Pythonwin\pywin\debugger\__init__.py",
line 60, in run
_GetCurrentDebugger().run(cmd, globals,locals, start_stepping)
File "C:\Python22\Lib\site-packages\Pythonwin\pywin\debugger\debugger.py",
line 582, in run
_doexec(cmd, globals, locals)
File "C:\Python22\Lib\site-packages\Pythonwin\pywin\debugger\debugger.py",
line 924, in _doexec
exec cmd in globals, locals
File "C:\Scripts\2002\07\testfread.py", line 14, in ?
t.start()
File "C:\Python22\lib\threading.py", line 384, in start
assert not self.__started, "thread already started"
AssertionError: thread already started
---------------------------------------------------------
(Der beispielcode macht natürlich keinen Sinn, es ist nur "im Testbetrieb"
aufgefallen)
Wir hatten noch eine paar Probleme im Zusammenspiel Thread & Queue.Queue(),
die sich aber bisher nicht mit einfachen testscripten reproduzieren lassen.
More information about the Python-de
mailing list