首页 > 解决方案 > python列表的单独元素可以同时被单独的子进程访问吗?

问题描述

想象一下要执行并行计算。让我们想象一下,由于 RAM 要求,内存在子进程之间共享是必不可少的。让我们还假设没有共享内存被更改,而只是从中读取。我的问题是(就性能而言)如何引用共享内存是否重要。

作为示例考虑以下内容(假设我们在一个使用写时复制的系统上,这样a不会复制到每个子进程)

from multiprocessing import Pool

a = [5, 8, 0.1, 154]

def function( i ):
    return a[i]**2

with Pool(4) as p:
    result = p.map( function, [0,1,2,3] )

print(result)

出去:[25, 64, 0.010000000000000002, 23716]

a(index 0,1,2,3)的四个值是否可以同时访问?还是每个子进程都必须等到对列表的引用a“可用”才能提取a[i]

我怀疑答案是可以同时使用单独的元素。但我想确定。

感谢您的任何输入:)

标签: python

解决方案


推荐阅读