Using thread and Locks : lock « Thread « Python Tutorial






import thread
from time import sleep, ctime

loops = [4,2]

def loop(nloop, nsec, lock):
    print 'start loop', nloop, 'at:', ctime()
    sleep(nsec)
    print 'loop', nloop, 'done at:', ctime()
    lock.release()

print 'starting at:', ctime()
locks = []
nloops = range(len(loops))

for i in nloops:
    lock = thread.allocate_lock()
    lock.acquire()
    locks.append(lock)

for i in nloops:
    thread.start_new_thread(loop,
        (i, loops[i], locks[i]))

for i in nloops:
    while locks[i].locked(): pass

print 'all DONE at:', ctime()








17.7.lock
17.7.1.Using thread and Locks
17.7.2.Threading with locks