py使用thread的一个简单的线程同步编程

来源:互联网 发布:2018物理优化设计答案 编辑:程序博客网 时间:2024/05/22 03:31


# import threadfrom time import sleep, ctimeloops = [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 2014loop 1 done at: Sun Dec 28 16:53:38 2014loop 0 done at: Sun Dec 28 16:53:40 2014loop 2 done at: Sun Dec 28 16:53:43 2014all DONE at: Sun Dec 28 16:53:43 2014






0 0