gpt4 book ai didi

python - 在主脚本之外使用 python 多进程

转载 作者:太空狗 更新时间:2023-10-30 01:32:46 24 4
gpt4 key购买 nike

根据docs python 的多进程进程的生成需要在 if __name__ == '__main__': 子句内以防止生成无限进程。

我的问题是,是否可以在导入中使用多进程?

类似这样的事情:假设我有这个 py,它是主要执行的文件:

import foo

def main():
foo.run_multiprocess()

if __name__ =='__main__':
main()

和导入的 foo.py 文件:

def run_multiprocess(number_to_check):
if number_to_check == 5:
print(number_to_check)

if __name__ == '__main__':
list_to_check = {1,2,3,4,5,6,7}
pool = Pool(processes=4)
pool.map(process_image, list_to_check)

显然这不会起作用,因为 foo.py 中 if 语句中的代码不会运行。有没有办法让它发挥作用?

最佳答案

多重处理不必在 __main__ block 中运行,__main__ block 仅在文件通过 python filename.py 运行时使用>.

所以如果你这样做了:

m1.py:

from multiprocessing import Pool    
def f(x):
return x^2

def f2():
p = Pool(5)
p.map(f, [1,2,3,4,5])

m2.py:

from m1 import f2

if __name__ == '__main__':
f2() # this would run multiprocessing code

然后调用 python m2.py,您的代码将正确运行,带有 mp。

关于python - 在主脚本之外使用 python 多进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38958640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com