[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