Y光祖
2020-11-27 09:50
老师为什么我按照这个程序例子敲了一边,lock锁住没用,还是错误的money
lock=threading.Lock() #存钱1000 def deposit(balance): for i in range(100): time.sleep(0.01) lock.acquire() balance.value += 1000 print(balance.value) lock.release() #取钱1000 def withdraw(balance): for i in range(100): time.sleep(0.01) lock.acquire() balance.value -= 1000 print(balance.value) lock.release() if __name__=="__main__": balance=Value('i',2000) print("初始余额",balance.value) t1 = Process(target=deposit, name="thread1", args=(balance,)) t2 = Process(target=withdraw, name="thread2", args=(balance,)) t1.start() t2.start() t1.join() t2.join() print("最终余额:",balance.value)
是没有算了开关
这锁可以的,
深入浅出剖析Python的全局解释锁GIL
2608 学习 · 9 问题
相似问题