Python 更改线程中的全局变量
我正在处理线程和多处理,遇到了一个问题,下面是我的代码:Python 更改线程中的全局变量,python,multithreading,multiprocessing,global-variables,Python,Multithreading,Multiprocessing,Global Variables,我正在处理线程和多处理,遇到了一个问题,下面是我的代码: xxx = [] def func1(*args): #do something 1 global list xxx.append('x') def func2(*args2): func1x = partial(func1, ...(*argsx)...) with multiprocessing.Pool(3) as pool: pool.map(func1x, arg) def func
xxx = []
def func1(*args):
#do something 1
global list
xxx.append('x')
def func2(*args2):
func1x = partial(func1, ...(*argsx)...)
with multiprocessing.Pool(3) as pool: pool.map(func1x, arg)
def func3(arg3):
While True:
try:
# do something 2
global list
print(list)
except:
continue
def main():
t1 = threading.Thread(target=func2, args=(*args2))
t2 = threading.Thread(target=func3, args=(args3))
t1.start()
t2.start()
main()
使用这些嵌套的多处理和线程,我的代码块运行平稳,没有任何错误
问题是,尽管我试图在func1()
中为xxx
设置一个新的全局变量,func3()
中的print
命令仍然像我预期的那样打印[]
,而不是['x']
我使用while
循环等待func1()声明xxx
的新变量,但仍然不起作用
如何在运行线程中每次更改新的全局变量时都使用它?“list”是一个关键字,您不应该将其用作变量的名称。是的,我只是在这里将其称为“list”,而不是在代码中。顺便说一句,我把“列表”编辑成“xxx”