python 多线程编程(二)

来源:互联网 发布:shopnc 源码 编辑:程序博客网 时间:2024/05/21 08:37

一个给不同线程分配不同锁的例子:

'''Created on 2012-3-9@author: Administrator'''#!/usr/bin/env pythonimport threadfrom time import ctime,sleeploops=[4,2]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 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],lock[i]))       for i in nloops:        while locks[i].locked():            pass    print 'all Done at:',ctime()if __name__=='__main__':    main()