_name_ == "_main_" 多进程在windows和linux下的差异

name == "main" 多进程在windows和linux下的差异

windows报错 linux成功

import multiprocessing as mp
def ParameterCalculation(list,output):
output.put(1)
result = 0
if __name__ == "__main__":
output = mp.Queue()
processes = []
processes.append(mp.Process(target=ParameterCalculation, args=([], output)))
processes.append(mp.Process(target=ParameterCalculation, args=([], output)))
for p in processes:
p.start()
resultMp = [output.get() for p in processes]
for p in processes:
p.join()
for j in range(0, len(resultMp)):
result = result + resultMp[j]
FreYield = round((1212 / float(result)) * 100, 4)
print(FreYield)

windows成功 linux成功

import multiprocessing as mp
def ParameterCalculation(list,output):
output.put(1)
result = 0
if __name__ == "__main__":
output = mp.Queue()
processes = []
processes.append(mp.Process(target=ParameterCalculation, args=([], output)))
processes.append(mp.Process(target=ParameterCalculation, args=([], output)))
for p in processes:
p.start()
resultMp = [output.get() for p in processes]
for p in processes:
p.join()
for j in range(0, len(resultMp)):
result = result + resultMp[j]
FreYield = round((1212 / float(result)) * 100, 4)
print(FreYield)

windows的多进程和Linux的多进程的创建形式不同,windows的多进程通过导入模块实现,不在main函数内的代码会被在子进程中再次执行,而linux的多线程是通过fork来创建子进程,可以按照代码顺序执行下去

posted @   兔子春  阅读(78)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示