Python多处理 - 数组共享?

时间:2011-07-07 04:10:24

标签: python multiprocessing

使用rawarray在不同进程之间共享multiprocessing时,让所有子进程编写/修改raw array是否有问题?

在这种情况下,是否需要处理锁定等?

1 个答案:

答案 0 :(得分:2)

来自python文档:

  

multiprocessing.sharedctypes.RawArray(typecode_or_type,   size_or_initializer)

Return a ctypes array allocated from shared memory.

typecode_or_type determines the type of the elements of the returned
     

数组:它是ctypes类型或a   这种类型的一个字符类型   由阵列模块使用。如果   size_or_initializer是一个整数   它决定了数组的长度,   并且数组将是最初的   归零。否则size_or_initializer   是一个习惯的序列   初始化数组及其长度   确定数组的长度。

Note that setting and getting an element is potentially non-atomic;
     

使用Array()来确保这一点   访问自动同步   使用锁。

因此,您可能需要使用允许进程之间锁定和同步的multiprocessing.sharedctypes.Array