一个给不同线程分配不同锁的例子:
''' Created on 2012-3-9 @author: Administrator ''' #!/usr/bin/env python import thread from time import ctime,sleep loops=[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()