python - 使用 Python 多处理进行内存管理

标签 python memory-management multiprocessing

按照我的理解,另一个 Python 实例是通过多处理启动的。如果是这样,

a.是否为每个多处理进程启动一个Python实例?

b.如果一个进程正在处理一个内存数据库表,另一个进程正在处理另一个内存数据库表,Python 如何管理这两个进程的内存分配?

c. Wrt b) 是调用之间持续的内存分配,即。如果第一个进程连续使用,但第二个进程很少使用,那么在进程调用之间是否会重新创建内存表?

最佳答案

(a) 是的

(b) Python 几乎不管理它,而是操作系统来管理

(c) 是的,如果第二个进程退出,则无论第一个进程是否持续存在,其资源都会被释放。原则上,您可以使用共享对象来允许第二个进程使用第一个进程安排的将持续存在的内容。如何处理“某物”作为数据库表的具体示例是另一回事。

使用multiprocessing运行额外的Python进程很像使用subprocess运行额外的Python(或Java)进程。不同之处在于,多处理为您提供了一套在进程之间进行通信的方法。它不会改变操作系统进程的基本生命周期和资源处理。

关于python - 使用 Python 多处理进行内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21330232/

相关文章:

python - await 如何在协程链接期间将控制权交还给事件循环?

python - 为什么没有创建 sorl 缩略图缓存文件夹?

memory-management - Erlang - 循环和内存分配

python - 为什么 Pandas 中的多重处理比简单计算慢?

Python 2.6 multiprocessing.Queue 与线程兼容?

c++ - CPython 中的静态全局变量不安全吗?

python - 构建字典 - 列表长度不一样

python - 检查两个 csv 文件的两列值,如果找到匹配,则写入另一个 csv 文件

memory-management - Nothrow with CUDA 新

c - C中结构中的指针指向的自由数组