代码如下:# 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释放锁,请问为什么会这样?
添加回答
举报
0/150
提交
取消