Python多重处理apply_async永远不会在Windows 7上返回结果

Python多重处理apply_async永远不会在Windows 7上返回结果,第1张

Python多重处理apply_async永远不会在Windows 7上返回结果

这里有两个错误。首先,在Windows上运行时,必须声明

Pool
内部
if__name__ =="__main__":
保护。其次,即使只传递一个参数,也必须给关键字参数传递一个序列。所以放在一起:
args

import multiprocessing as mpdef cube(x):    return x**3if __name__ == "__main__":    pool    = mp.Pool(processes=2)    results = [pool.apply_async(cube, args=(x,)) for x in range(1,7)]    print([result.get() for result in results])

输出:

[1, 8, 27, 64, 125, 216]

编辑:

哦,正如moarningsun提到的

multiprocessing

那样,在交互式解释器中不能很好地工作:

注意

此软件包中的功能要求该

__main__
模块可由子级导入。编程指南中对此进行了介绍,但是这里值得指出。这意味着某些示例(例如
multiprocessing.Pool
示例)在交互式解释器中将不起作用。

因此,您实际上需要将代码作为脚本执行才能正确测试。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5646187.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存