我需要为多维数组或列表创建一个共享对象,以便其他进程可以使用它。有没有一种方法来创造它,因为我所看到的是不可能的。我曾尝试:我可以在python中为多处理创建共享的多阵列或列表对象列表吗?
from multiprocessing import Process, Value, Array
arr = Array('i', range(10))
arr[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
arr[2]=[12,43]
TypeError: an integer is required
听说numpy的阵列可以多阵列和一个共享对象,如果上面是不可能有人可以告诉我如何做一个numpy的阵列的共享对象?
我不确定多处理部分,但我知道你为什么在那里接收TypeError:你在第二行初始化整数值的数组。在第5行中,您尝试将列表分配给数组中的某个点。数组是相对较低级别的对象,不能包含列表,字典,集合和其他python容器类型。 – 2012-03-17 21:56:50
是的,这就是我知道的,我知道为什么我得到TypeError。这就是为什么我问是否有办法来超越这个问题,或创建一个共享对象“列表”,或者可能如何使用numpy数组,可以是多数组并使它们成为共享对象。 – user1249212 2012-03-17 22:07:55
查看这些。然后,围绕它们构建数据结构:http://effbot.org/pyfaq/what-kinds-of-global-value-mutation-are-thread-safe.htm。 – MrGomez 2012-03-17 23:16:31