多处理数据共享

Posted

技术标签:

【中文标题】多处理数据共享【英文标题】:Multiprocessing data sharing 【发布时间】:2012-06-21 22:26:23 【问题描述】:

我想知道 Google Chrome 的多进程架构是如何工作的。据我了解,有一个进程可以呈现所有内容,并且每个页面都有一个与之关联的附加进程。我的问题是,如果一个页面加载了 100MB 的图片,它是如何传递给渲染器进程的?

换句话说,将数据从一个进程传递(复制?)到另一个进程的最快方法是什么?

换句话说,如果一个进程产生了 100 MB 的数据,如何让另一个进程读取呢? (请注意,数据是在进程分叉后产生的)。

编辑:如果子进程创建数据而父进程事先不知道数据的大小,如何将数据从子进程传递给父进程?我的意思是,“共享内存块”必须由父级创建,对吗?那么父级到底知道要分配多少空间呢?

【问题讨论】:

【参考方案1】:

它的通用名称是 IPC - 进程间通信。 http://en.wikipedia.org/wiki/Inter-process_communication

现在我不知道 chrome 是如何实现它的,但我希望你能明白。如果我必须选择一个,我会说内存共享或管道,但它可能(几乎)是其中任何一个。

【讨论】:

以上是关于多处理数据共享的主要内容,如果未能解决你的问题,请参考以下文章

高并发多线程基础之线程间通信与数据共享及其应用

python中的多处理-在多个进程之间共享大对象(例如pandas数据框)

Python 多处理和共享计数器

在 Python 多处理中将 Pool.map 与共享内存数组结合起来

在 python 多处理中传递共享内存变量

Python - 多处理和共享内存