一个给不同线程分配不同锁的例子:
'''
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()