Newbie having issues with threads

James Calivar amheiserbush at yahoo.com.au
Thu Jul 31 17:09:12 EDT 2008


I'm a newbie trying to write a script that uses threads.  I'm right
now a little bit stuck in understanding why the code snippet I wrote
doesn't seem to be entering the function defined in the
start_new_thread() call.

If I run it as is (the threaded version), the output is:

UA_1 configuring...
UA_1 halting..

But if I comment out the line w/ the thread and just call the function
directly, everything seems to work OK:

UA_1 configuring...
UA_1 executing...
UA_1 halting...

Can anyone tell me why the thread doesn't seem to invoke the function
"execute()"?  I'm running Python 2.4.3.

Here is my code:

===========
import thread

class Test(object):
    def __init__(self, instanceID):
        self.instanceID = instanceID
    def configure(self):
        print self.instanceID + " configuring..."
    def execute(self):
        print self.instanceID + " executing..."
    def halt(self):
        print self.instanceID + " halting..."

if __name__ == "__main__":
    """usage: sipp_auto [options]"""

    ua1 = Test("UA_1")

    ua1.configure()

    #ua1.execute()
    thread.start_new_thread(ua1.execute, ())

    ua1.halt()

===========
Thanks, James



More information about the Python-list mailing list