faqts : Computers : Programming : Languages : Python : Common Problems : Threads

+ Search
Add Entry AlertManage Folder Edit Entry Add page to http://del.icio.us/
Did You Find This Entry Useful?

115 of 117 people (98%) answered Yes
Recently 10 of 10 people (100%) answered Yes

Entry

Where can I find a good simple example using threads in Python?

Mar 1st, 2000 20:25
Nathan Wallace, Jeff Blaine, Steve Holden


Ripped straight from Aahz Maruch's post the other day and simplified
as more of a 'visual learning tool' demo.  Added a few comments...
whatever...just posting in case someone finds this one more graspable
at a thread-beginner level like me.

#!/usr/local/bin/python

import time, threading, whrandom

class MyThread(threading.Thread):
    """ Each thread picks a 'random' integer between 0 and 19 and 
        reports in once per second for that many seconds.
    """

    def run(self):
        iterations = whrandom.randint(0, 19)
        for i in range(iterations):
            print "   ", self.getName(), "is reporting in"
            time.sleep(1)
        print self.getName(), "is DONE"


if __name__ == '__main__':
    threadList = []

    # Create 5 MyThread() threads
    for i in range(5) :
        thread = MyThread()
        threadList.append(thread)

    # Start all threads
    for thread in threadList:
        thread.start()

    # As long as we have more than just the 'main' thread running, print 
    # out a status message
    while threading.activeCount() > 1 :
        print str(threading.activeCount()), "threads running incl. main"
        time.sleep(1)

Please note, you should not expect this to run under Idle, which gave
somewhat incomprehensible results to a newbie like me, but it works fine
as a standalone.