Python 使用列表数组对共享内存进行多处理

Python multiprocessing for shared memory with an array of lists

我想知道是否有办法为布尔列表数组共享内存:

s = Array( 'x' , range(10000000)) 

我必须写什么来代替 x 以使其成为大小为 64 的列表数组。然后我必须在两个不同的过程中操作 "s",如下所示:

#First

for i in range(0,photoCount):
    db.newDBS.insert_one({ 'photo' : s[i], 'user_id' : ids[i] })

#Second

s[photoCount].append = inPhoto

类型应该是什么?任何帮助或建议表示赞赏。谢谢!

Python Multiprocessing 模块允许 2 种类型的共享变量:Array,这是一个单一数据类型的简单一维数组,Value,它只是单个值。

您可以使用 ctype 设计自己的共享变量,如果您熟悉 C 语言:请参阅 documentation here.

如果您只需要一个二维数组并且不想使用 ctype 共享对象,也许您可​​以将数组展平到一个列表中并改用 multiprocessing.Array?然后在处理完成后重新整形。