Python threads ( termination )
Dan Parisien
dan at eevolved.com
Fri Feb 16 12:23:39 EST 2001
aboufer at atlsci.com wrote:
> Greetings,
>
> I am trying to write a multi-threaded app using python, and I am
> trying to find
> a way to stop/terminate a thread from within another.
>
> Here is an example :
>
> import threading
>
> mySuccess = 0
>
> class MyThread( threading.Thread) :
> def __init__( self, name='hello') :
> threading.Thread.__init__( self, name=name)
>
> def run(self) :
> global mySuccess
> import random
>
> for x in range(10) :
> threading._sleep( random() )
> print 'Hello ', x
>
> mySuccess = 1
>
> myTest() :
> t1 = MyThread()
> t1.start()
>
> t1.join( 0.1 )
>
> if mySuccess == 1 :
> print 'Thread exited okay'
> else :
> print 'Thread did not respond !!'
> I need a way to kill thread t1 here <------------------------
>
> if __name__ == '__main__' :
> myTest()
>
>
> In this example, my function myTest calls join() on thread t1, with a
> specified time_out. What I would like to
> do is to terminate/stop thread t1 if it does not respond within timeout.
>
>
>
> Thanks all
>
You could use 2 threading.Event instances to communicate between threads
and have the 'bad' thread terminate itself.
There is no real way to terminate a thread from another thread...
Dan
More information about the Python-list
mailing list