代码如下:
# coding=utf-8 import time import threading import os def doChore(): print "doChore start" time.sleep(0.5) print "doChore end" def booth(tid): global i global lock while True : print "tid:",tid,"lock start" lock.acquire() if i != 0 : print "tid:",tid,"得到了第",i,"张票" i = i -1 print "now left tickets:",i doChore() else : print "tid:",tid,"no more tickets!" os._exit(0) lock.release() print "tid:",tid,"lock end" doChore() i = 100 lock = threading.Lock() for k in xrange(1,5): print "第",k,"个线程" new_thread = threading.Thread(target=booth,args=(k,)) new_thread.start()
运行结果如下:
最后线程1并没有release释放锁,请问为什么会这样?
angie
相关分类