En Wed, 11 May 2011 03:57:13 -0300, vijay swaminathan <swavi...@gmail.com>
escribió:
Hi All,
I'm new bie to thread programming and I need some assistance in
understanding few concepts ...
I have a very simple program which runs a thread and prints a string.
import threading
class MyThread(threading.Thread):
def __init__(self, parent = None):
threading.Thread.__init__(self)
def run(self):
print 'Hello World'
def main():
for i in range(10):
MyThread_Object = MyThread()
print 'Object id is : ' , id(MyThread_Object)
print 'Staring thread ----------> ' , MyThread_Object.getName()
MyThread_Object.start()
count = threading.activeCount()
print 'The active thread count is: ' , count
if __name__ == '__main__':
main()
When I run this, I could see 10 thread being called. But when I print the
active thread count it is only 2.
Need some understanding on the following.
1. How the total active thread is 2?
Because most of them have already finished by then. Your run() method
executes quite fast. Make it take more time (maybe by adding
time.sleep(1)) and you'll see 10 active threads.
2. how do I stop a thread? does it get automatically stopped after
execution
?
You don't; a trhread runs until the run() method exits. After that, the OS
thread finishes. The Python object (a threading.Thread instance) is still
alive (until the last reference to it disappears, as any other object).
3. Am I totally wrong in understanding the concepts.
I don't know...
4. what is the difference between active_count() and activeCount() since
both seem to give the same result.
Nothing. active_count is the preferred Python spelling per PEP8;
activeCount is the original Java spelling.
5. is there a way to find out if the thread is still active or dead?
Yes, use is_alive()
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list