By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,994 Members | 1,166 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,994 IT Pros & Developers. It's quick & easy.

How to Restart a thread

P: n/a
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

Nov 25 '06 #1
Share this Question
Share on Google+
1 Reply


P: n/a
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/
Nov 25 '06 #2

This discussion thread is closed

Replies have been disabled for this discussion.