如何将Python代码中multiprocess多进程逻辑修改为单进程实现
修改方案
核心修改逻辑
- 移除
multiprocessing库依赖 - 把异步启动子进程的逻辑替换为同步调用目标方法,不需要再维护进程列表
- 原等待进程执行的
wait方法可根据需要保留兼容接口,也可直接删除
修改后代码如下:
# 已移除无用的multiprocessing导入 def process(self): if product != 0: if self.mlist.check(file_dictionary): self.mlist.patch(file_dictionary) # 直接同步调用目标方法,替换原多进程启动逻辑 self.mlist.job(file_dictionary, targ) def wait(self): # 单进程场景下无需等待子进程,若要保留接口兼容可留空,不需要可直接删除该方法 pass
补充说明:修改后所有符合条件的
self.mlist.job任务会按触发顺序串行执行,和原多进程的并行执行逻辑的执行效率会有差异,功能结果保持一致。如果需要保留原wait方法最多等待2秒的超时逻辑,单进程下需要额外通过signal模块(仅Unix环境可用)或者第三方库实现函数超时控制,常规无特殊超时要求的场景使用上述代码即可。
内容的提问来源于stack exchange,提问作者chlth
相关产品推荐
相关产品推荐

