python多线程极其新手的上锁问题
from threading import Thread,Lock
dicts={"a":30}
def gai():
lock=Lock()
lock.acquire()
dicts["a"]=(dicts["a"]-1)
print(dicts["a"])
lock.release()
def gai1():
for i in range(10):
Gai=gai()
def gai2():
for i in range(10):
Gai=gai()
def gai3():
for i in range(10):
Gai=gai()
if __name__ == "__main__":
p1=Thread(target=gai1,args=())
p2=Thread(target=gai2,args=())
p3=Thread(target=gai3,args=())
p1.start()
p2.start()
p3.start()
p1.join()
p2.join()
p3.join()
这个代码最后的输出还是数据混乱,是我的上锁位置不对么