[Tutor] Good threading tutorial
Vicki Stanfield
vicki at stanfield.net
Wed Mar 31 15:15:28 EST 2004
> How about a nice "hello threads" example? :-)
>
How about this one?
-----
import threading
class TaskThread(threading.Thread):
"""Thread that executes a task every N seconds"""
def __init__(self):
threading.Thread.__init__(self)
self._finished = threading.Event()
#self._interval = 15.0
self._interval = 5.0
self.num = 0
def setInterval(self, interval):
"""Set the number of seconds we sleep between executing our task"""
self._interval = interval
def shutdown(self):
"""Stop this thread"""
self._finished.set()
def run(self):
while 1:
if self._finished.isSet(): return
self.task()
# sleep for interval or until shutdown
self._finished.wait(self._interval)
def task(self):
"""The task done by this thread - override in subclasses"""
pass
if __name__ == '__main__':
global num
class printTaskThread(TaskThread):
def task(self):
print 'running %d' %self.num
self.num = self.num + 1
time.sleep(3)
tt = printTaskThread()
tt.setInterval(3)
print 'starting'
tt.start()
print 'started, wait now'
import time
time.sleep(60)
print 'killing the thread'
tt.shutdown()
print 'killed and done'
-------
I played with it a while back to get the feel of threads in Python.
--vicki
"A pessimist sees the difficulty in every opportunity; an optimist sees
the opportunity in every difficulty."
-- Winston Churchill
More information about the Tutor
mailing list