Python - 多线程竞争资源问题

当多个线程同时操作一个变量的时候,这个变量就容易发生错误。导致计算错误

5个线程同时操作一个变量:

import threading

number=0 #被同时操作的变量

def add():
    global number
    
    for i in range(500000):
        number+=i      

threads_list=[]

for i in range(5):
    t=threading.Thread(target=add)
    t.start()
    threads_list.append(t)

for t in threads_list:   #让主线程等待所有子线程计算结束后,再执行后面的打印
    t.join()

print(number)  #624998750000
运行后>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

第一次运行后:

264959265178

第二次运行后: 两次运行结果都不一样

398089529723
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章