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