Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在多个进程之间共享数据不会在python for windows中执行共享行为_Python_Multiprocessing_Shared Memory - Fatal编程技术网

在多个进程之间共享数据不会在python for windows中执行共享行为

在多个进程之间共享数据不会在python for windows中执行共享行为,python,multiprocessing,shared-memory,Python,Multiprocessing,Shared Memory,我试图在一些不同的进程之间共享一些数据,并且遵循python文档 在本节中,我将从他们提供的以下代码开始,以说明在流程之间共享数据的方式 from multiprocessing import Process, Value, Array def f(n, a): n.value = 3.1415927 for i in range(len(a)): a[i] = -a[i] if __name__ == '__main__': num = Value(

我试图在一些不同的进程之间共享一些数据,并且遵循python文档

在本节中,我将从他们提供的以下代码开始,以说明在流程之间共享数据的方式

from multiprocessing import Process, Value, Array

def f(n, a):
    n.value = 3.1415927
    for i in range(len(a)):
        a[i] = -a[i]

if __name__ == '__main__':
    num = Value('d', 0.0)
    arr = Array('i', range(10))

    p = Process(target=f, args=(num, arr))
    p.start()
    p.join()

    print(num.value)
    print(arr[:])
根据文件,输出应为:

3.1415927
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
但是,当我运行这段代码时,我得到了不同的结果:

0.0
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
我在Windows10和Python3.6上测试它 这意味着共享无法正常工作,我尝试调试以了解问题的确切原因,发现
P.start()
无法调用函数
f

为什么它的性能不如预期

更新:
我在ubuntu中测试了相同的代码,它运行得非常好,这意味着问题出在windows上,但我不明白windows为什么会出现这样的问题

它正在我的系统上运行(windows,Python 3.7)。因此,这不是代码的问题(将其复制到文件中)。你用的是什么系统?事实上,我刚刚试着用Ubuntu18编写,它运行得很好,但首先它在windows和python 3.6中不起作用。你用的是Jupyter笔记本还是其他交互式python?在这种情况下,您需要导入流程中使用的函数:如果这是您的案例,我可以编写一个答案。首先,我尝试了spider,然后,我尝试了windows命令提示符,但这两个命令都不起作用