Python Threading With Concurrency
Question: I wrote the following code while trying to learn threading in python.

    
    
        import threading
        import time
    
        def printWorker(x,y):
            t = time.time()
            while time.time() - t < 10:
                print "Name:%s  Time:%s" %(y,str(time.time() - t))
                time.sleep(x)
    
        t1 = threading.Thread(target = printWorker(2,'Thread-1'))
        t2 = threading.Thread(target = printWorker(3,'Thread-2'))
    
        t1.start()
        t2.start()
    

Im trying to get an output where both Thread-1 and Thread-2 start at same
time. IE Print

Thread-1 Stuff, Thread-2 Stuff, Thread-1 Stuff, Thread-2 Stuff, instead of

Thread-1 Stuff, Thread-1 Stuff, Thread-1 Stuff, Thread-1 Stuff, Thread-2
Stuff, Thread-2 Stuff, Thread-2 Stuff, Thread-2 Stuff

Instead Thread-2 Only starts after Thread-1. I've checked online examples but
I don't understand what I'm doing wrong mechanically.


Answer: To pass arguments you need to do this:

    
    
    t1 = threading.Thread(target=printWorker, args=(2, 'Thread-1'))
    t2 = threading.Thread(target=printWorker, args=(3, 'Thread-2'))
    

Your code is invoking printWorker on the main thread and starting two threads
with target=None (the return value of printWorker).

