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”