mclaugb wrote: > When i add the print (or other) function into the run method--the thread > fails to stop after 2 seconds which the join(2) should ensure.
The calling thread waits until the thread you call join() upon stops or 2 seconds have passed -- whatever occurs first. import time from threading import Thread class MyThread(Thread): tick = 0.1 def __init__(self, seconds): Thread.__init__(self) self.n = int(seconds/self.tick) def run(self): for i in range(self.n): time.sleep(self.tick) print "running" def measure(seconds): print "Run for %.2f seconds..." % seconds t = MyThread(seconds) t.setDaemon(True) t.start() starttime = time.time() t.join(1) # wait one second stoptime = time.time() print stoptime-starttime t.join() # wait for how long t takes to terminate print "...done" if __name__=="__main__": measure(1.5) measure(0.5) Peter -- http://mail.python.org/mailman/listinfo/python-list