Skip to main content
 首页 » 编程设计

Python之类方法多进程安全吗

2025年05月04日8exmyth

我有一个类循环处理一些数据文件,处理它们,然后写回新数据。每个文件的分析完全独立于其他文件。该类在其属性中包含分析所需的信息,但分析不需要更改该类的任何属性。因此,我可以使对一个数据文件的分析成为我类(class)的一个方法。原则上可以并行进行分析,因为每个数据文件都是独立的。顺便说一句,我正在考虑让我的类可迭代。

我可以使用 multiprocessing 模块来生成属于我的类的方法的进程吗?我需要使用多处理,因为我使用的第三方代码内存泄漏非常严重(在大约 100 个数据文件后填满所有 24Gb 内存)。

如果没有,你会怎么做?您是否只使用我的类调用的普通函数(将我需要的所有信息作为参数传递)而不是方法?如何将参数传递给多处理中的函数?它是否进行深拷贝?

请您参考如下方法:

是的,如果您不更新需要跨实例共享的类本身的数据,那么在这种情况下多处理是适合您的工具。