passing threading.Thread() and function object
Jeremy Jones
zanesdad at bellsouth.net
Wed Oct 13 14:30:22 EDT 2004
Christopher J. Bottaro wrote:
>Hello,
>
>I'm new to Python programming, so please excuse me.
>
>thread = threading.Thread(self.somefunc())
>thread.start()
>print "Thread started"
>
>def somefunc(self):
> while (1)
> print "In thread"
>
>
>"Thread started" never gets printed, but "In thread" gets printed
>repeatedly. What is going on? It seems like thread.start() is blocking
>and effectively running self.somefunc() as a normal function.
>
>Thanks for the help.
>
>
>
Your code is evaluating self.somefunc(), which is an infinite loop. The
thread is actually never starting. You may want to do something more
like this:
<untested code>
import threading
class DoSomething(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
while 1:
print "In thread"
if __name__ == "__main__":
ds = DoSomething()
ds.start()
print "Thread started"
</untested code>
Jeremy Jones
More information about the Python-list
mailing list