0
点赞
收藏
分享

微信扫一扫

多线程共享全局变量和锁机制

静鸡鸡的JC 2022-01-10 阅读 53
python
import threading
value=0
def coding():
    global value# 全局变量要修改的话必须申明
    for i in range(100):
        value+=1
    print(value)
def main():
    for i in range(2):
        t=threading.Thread(target=coding)
        t.start()
if __name__ == '__main__':
    main()

当数量为100的话是正确的


当数量比较大,比如10000000时,多线程就会存在问题===他的结果就是

这个时候就要用到锁机制

import threading
value=0
lock=threading.Lock()
def coding():
    global value# 全局变量要修改的话必须申明
    lock.acquire()
    for i in range(1000000):
        value+=1
    print(value)
    lock.release()
def main():
    for i in range(2):
        t=threading.Thread(target=coding)
        t.start()
if __name__ == '__main__':
    main()

结果如下

 

举报

相关推荐

0 条评论