On Wed, 28 May 2008 11:38:53 -0700, RossGK wrote:

> 
> I've answered my own question about the "None" state - an event was
> setting the thread to None where I didn't expect it.
> 
> However, my question slightly repositioned is if a Thread is "Stopped"
> it still seems to exist. Is there someway to make it go away, send it
> to garbage collection etc?
> 
You have to call the join() method of the thread object from another
thread. This will terminate the thread and free its resources. This is
usually the task of the parent thread which usually does something
like:
     t = MyTread(...)
     t.start()
     # do your own stuff, then before quitting
     t.join() # Note that this waits until t is terminated



> Other part of the original Q - I assume a Stopped thread gets a false
> from "isAlive" and a Running thread gets a true?

Yes. You can try yourself:

>>> import threading
>>> class MyThread(threading.Thread):
        def __init__(self): threading.Thread.__init__(self)
        def stop(self): self._stop = True
        def run(self):
                self._stop= False
                while self._stop == False:
                        import time
                        time.sleep(0.1)

                        
>>> t = MyThread()
>>> t.start()
>>> t.isAlive()
True
>>> t.isAlive()
False
>>> t.join()
>>> t.isAlive()
False


Ciao
----
FB
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to