lock锁住没用

来源:3-1 程序来分析Python线程,GIL效率慢的表现

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)


写回答 关注

2回答

  • 慕梦前来
    2022-08-31 19:44:25

    是没有算了开关

  • 慕梦前来
    2021-09-12 10:43:21

    这锁可以的,

深入浅出剖析Python的全局解释锁GIL

从历史发展的角度来解释GIL的来龙去脉,GIL的本质。

2608 学习 · 9 问题

查看课程

相似问题