多重处理

2024-04-19 19:40:24 发布

您现在位置:Python中文网/ 问答频道 /正文

在Windows平台上,这两行代码导致Python代码执行以无限循环运行,每个循环从脚本的开头开始:

import multiprocessing as mp
manager=mp.Manager()

它在Mac上运行良好。原因是什么?它成功导入import multiprocessing as mp。但是在manager=mp.Manager()上,它会中断(没有错误)并跳回代码的第一行。你知道吗


Tags: 代码import脚本windowsmacas错误manager
1条回答
网友
1楼 · 发布于 2024-04-19 19:40:24

在Windows上,必须用if __name__ == "__main__":保护对multiprocessing的调用。请参阅here以获取有关为什么需要这样做的详细信息。这应该很管用:

import multiprocessing as mp

if __name__ == "__main__":
    manager=mp.Manager()

编辑:

请注意,将multiprocessing代码放在从if块调用的函数中也可以。像这样:

import multiprocessing as mp

def func(x):
   print("Got %s" % (x,))

def main():
  p = multiprocessing.Pool()
  results = p.map(func, range(0,5))

if __name__ == "__main__":
  manager = mp.Manager()
  main()

相关问题 更多 >