如何将多进程池贴花为变量并将其导入到另一个Python文件中

问题描述 投票:0回答:1

我有两个Python文件。

文件:multiprocess_pool.py


from multiprocessing import Pool

A = Pool(5)

文件:main.py

from multiprocess_pool import A

def start(x):
    print(x+1)

if __name__ == '__main__':
    with A as a:
        print(a.apply_async(start, args=(1,)).get())

当我执行 python main.py 时,出现下一个错误。

AttributeError: Can't get attribute 'start' on <module '__main__' 

我不想在

Pool
中声明
main.py
。由于我的服务是一个 Web 服务器,因此我需要调用
Pool
来执行一些 CPU 密集型任务。我想将
Pool
声明为变量并将其导入到另一个文件中。

python multiprocessing multiprocess
1个回答
0
投票

您需要按如下方式重组代码:

def start(x):
    print(x)
    return x+1

if __name__ == "__main__":
    from multiprocess_pool import A
    with A as a:
        print(a.apply_async(start, args=(1,)).get())

输出:

1
2
© www.soinside.com 2019 - 2024. All rights reserved.