在这里,我有一个用 C++ 调用foo编写的函数,并通过使用用 C 编写的 python 包装器(wrapper.c)使其可从 python 调用(foo_wrapper)。
在 wrapper.c 中,我有一个静态全局变量“x”,由foo使用和更新。
现在,当我在一个进程中从 python调用foo时,一切正常。
但是,当我在 python 中使用多进程模块时,即使 foo 是从主进程调用的,这个“x”值也不是应该的!调用过程是这样的:
P=Process(target=myf, args=(a,))
P.start()
foo_wrapper()
P.join()
我的问题是:当调用 fork() 时,即启动多个进程,python 如何处理父/子进程的堆栈或堆?我怎样才能使主进程(或父进程)的“x”值正确?