Noob can't make threads work
Steve Horsley
shoot at the.moon
Tue Mar 1 14:05:59 EST 2005
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())
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
More information about the Python-list
mailing list