On 2005-03-01, Steve Horsley <[EMAIL PROTECTED]> wrote: > I am trying to start two threads to do some time consuming work. This is my > first stab at threading, and it isn't working as I expect. Instead of the > threads starting when I call start(), they seem to run the target code as > part of the constructor call. > > Here is my test code... > > #!/usr/bin/python > > import time > import threading > > def fiddle(): > for n in range(3): > print n > time.sleep(1) > > print 'Creating threads...' > t1 = threading.Thread(target=fiddle()) > t2 = threading.Thread(target=fiddle())
t1 = threading.Thread(target=fiddle) t2 = threading.Thread(target=fiddle) > print 'Starting threads...' > t1.start() > t2.start() > > > I was expecting output like this: > > Creating threads... > Starting threads... > 0 > 0 > 1 > 1 > 2 > 2 > > but I get this instead: > > Creating threads... > 0 > 1 > 2 > 0 > 1 > 2 > Starting threads... > > This is in python 2.3 on Linux and also python 2.4 on XP. > Either threading in Python is badly broken, or I'm missing something > fundamental. I know which is most likely, but I can't figure it out. > > Could someone point me in the right direction, plese? > > TIA > Steve -- Grant Edwards grante Yow! We just joined the at civil hair patrol! visi.com -- http://mail.python.org/mailman/listinfo/python-list