#
import thread
from time import sleep, ctime
loops = [4, 2, 7]
def loop(nloop, nsec, lock):
print 'start loop', nloop, 'at:', ctime()
sleep(nsec)
print 'loop', nloop, 'done at:', ctime()
lock.release()
def main():
print 'starting threads...'
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()
if __name__ == '__main__':
main()
starting threads...
start loopstart loop start loop01 2at:at: at:Sun Dec 28 16:53:36 2014Sun Dec 28 16:53:36 2014
Sun Dec 28 16:53:36 2014
loop 1 done at: Sun Dec 28 16:53:38 2014
loop 0 done at: Sun Dec 28 16:53:40 2014
loop 2 done at: Sun Dec 28 16:53:43 2014
all DONE at: Sun Dec 28 16:53:43 2014