many_years_after wrote in news:1164467660.760671.145440 @j44g2000cwa.googlegroups.com in comp.lang.python:
> class mythread(threading.Thread): > def __init__(self, threadname): > threading.Thread.__init__(self, name = threadname) > > def run(self): > print 'i am running' > print 'i quit run()' > > thread = mythread('1') > thread.start() > print threading.activeCount() ## 1 , this means the thread is active > if not thread.isAlive(): > print 'i am dead,you can restart' ### OK, this is executed. this > means the thread is no alive > thread.start() #### " thread already started " > > This program presentes that the thread quit the *run()* func and is > active but not alive. How to understand this? It is said if the > thread quit the *run()* func , it's dead. > how to restart it ? > > Thanks > Form the manual [1] (you must have missed this): start( ) Start the thread's activity. This must be called at most once per thread object. It arranges for the object's run() method to be invoked in a separate thread of control. Note the 2nd line: This must be called at most once per thread object. so you simply can't restart a Thread object. [1] http://docs.python.org/lib/thread-objects.html Rob. -- http://www.victim-prime.dsl.pipex.com/ -- http://mail.python.org/mailman/listinfo/python-list