多进程占用全部CPU核心却无计算结果,请求排查解决
解决multiprocessing多进程无输出且CPU占满的问题
- 核心问题:导入模块的语法错误
你的main.py里的导入语句写错了——Python导入模块时不需要加上.py后缀。错误的写法会导致多进程启动时陷入无限创建子进程的循环,最终占满CPU且无法输出结果。
修正后的代码
preample.py(保持不变)
def function(list): return list[0]+list[1]
main.py(修正导入语句)
from preample import * from multiprocessing import Pool if __name__ == '__main__': parameters = [[1,2],[3,4]] # Multiprocessing with Pool() as p: results = p.map(function, parameters) print(results)
原因说明
当你写from preample.py import*时,Python会尝试查找名为preample.py的模块,而非正确的preample模块。在多进程场景下,每个子进程启动时都会重新执行导入逻辑,这种错误导入会引发异常,进而触发子进程的重复创建,最终导致CPU资源被耗尽,主进程也无法正常获取并打印计算结果。
内容的提问来源于stack exchange,提问作者Esteban G.
相关产品推荐
相关产品推荐

