多处理中的共享内存

多处理中的共享内存,第1张

多处理中的共享内存

一般来说,共有两种数据共享方式:

  • 多线程
  • 共享内存

Python的多线程不适用于受CPU约束的任务(由于GIL),因此在这种情况下,通常的解决方案是继续

multiprocessing
。但是,使用此解决方案,您需要使用
multiprocessing.Value
和显式共享数据
multiprocessing.Array

注意,由于所有同步问题,通常在进程之间共享数据可能不是最佳选择。通常,涉及参与者交换消息的方法是更好的选择。另请参阅Python文档:

如上所述,在进行并行编程时,通常最好尽可能避免使用共享状态。使用多个进程时尤其如此。

但是,如果确实需要使用某些共享数据,则多处理提供了两种方法。

在您的情况下,您需要包装

l1
l2
l3
以某种可以理解的方式
multiprocessing
(例如通过使用
multiprocessing.Array
)进行包装,然后将它们作为参数传递。
还要注意,正如您所说的那样,您不需要写访问权限,那么您应该
lock=False
在创建对象时通过,否则所有访问仍将被序列化。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674355.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存