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()结果如下











