繁体   English   中英

Python-类方法多进程安全吗?

[英]Python - Are class methods multiprocess safe?

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

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

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

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

您没有提及使用任何外部资源的过程,因此它应该是fork()安全的。 Fork复制内存和文件描述符,在父级和子级中程序状态相同。 除非您使用无法分叉的窗户,否则请继续。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM