繁体   English   中英

Python Multiprocessing Process类生命周期

[英]Python Multiprocessing Process class lifecycle

我正在为项目使用Python的多处理Process类,以在单独的进程中处理函数。 我的问题是,当功能在单独的流程中发挥作用时会发生什么? 是进程保持空闲状态,还是进程在功能结束时被杀死? 另外,给过程/功能增加负担会不会有任何问题?

代码块是这样的:

p = Process(target=function, args=[status.json])
if not p.is_alive():
    p.start()
p.join()

如果使用的是Process类 ,则该过程在调用start()启动 ,并在目标函数完成时终止,或者在调用Process对象的Terminate()方法时终止 终止后,该进程不会消耗执行资源,但是它将作为僵尸进程保留在进程表中 ,直到您调用join()为止。

关于您对新流程施加“沉重负担”的担忧,这应该没有任何效果。 多处理库启动成熟的独立进程,因此它们的操作与主进程基本相同。 现在很难说Process类是否真的是您问题的合适解决方案,因为“重负载”可能意味着许多不同的东西。 如果您的任务是IO密集型的,则线程模块可能是一个更好的选择。 如果要在许多不同的对象上执行相同的任务,则进程池可能是更合适的选择。 但是,“繁重的工作”本身并不会引起问题。

暂无
暂无

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

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