python下多进程时全局变量在子进程怎么能更新?遇到从子进程更
发布网友
发布时间:2022-05-05 01:49
我来回答
共4个回答
热心网友
时间:2022-04-18 14:32
请问,全局变量不在子进程里更新,但是在子进程使用的时候,全局变量没有变化
from collections import defaultdict
__global = 1
def a(x):
g = __global
print("x:{}".format(x))
print("g:{}".format(g))
def b():
global __global
__global = 2
with ProcessPoolExecutor(max_workers=1) as executor:
executor.map(a, [1, 2])
if __name__ == '__main__':
b()
热心网友
时间:2022-04-18 15:50
在子进程引用声明变量的模块,然后直接用.引用就更新了
热心网友
时间:2022-04-18 17:25
多线程的需要用 锁,
子进程(函数、类中需要使用 global声明全局变量)
如:
num=0 #全局
lockOne=threading.Lock()#对象不需要子函数中什么全局
def subPro():
global num
lockOne.acquire()
num+=1
lockOne.release()
...
热心网友
时间:2022-04-18 19:16
子进程Global 全局变量名?