最近开发一个新功能遇到一个问题,就是在一个A.py文件生成2个线程,调用B.py里的函数,B.py里面有若干global定义全局变量,导致程序得不到想要的结果。B.py文件里面的全局变量,被A.py里面的2个线程所共享,一个线程改变了他们的值,另外一个线程读取到的值就是改变之后的值。
A.py代码如下:
if __name__=='__main__':
for i in range(2):
t = threading.Thread(target=getGloble.init,args=((i,i)))
t.start()
time.sleep(5)</span>
B.py代码如下:
num=1
def init(i,m):
global num
print(str(i)+str(num))
num=num+1
print(str(i)+str(num))
num=num+1
print(str(i)+str(num))</span>