对 Python 里多进程池用法有点迷茫

2020-08-06 12:08:09 +08:00
 youthfire

大致看了下多线程和多进程的关系 多线程里同名变量写起来容易冲突麻烦,所以就用了多进程.这个多进程用起来有点迷茫 (运行环境是 Mac)

我多进程的写发如下

p = Pool(processes=6)
p.apply_async(过程名,参数)
p.close()
p.join()
3218 次点击
所在节点    Python
22 条回复
youthfire
2020-08-07 11:55:46 +08:00
@lithbitren #19 改用了多线程池后发现效果确实不错,速度甚至更快,也没有多进程池那最后卡顿了(虽然不明白卡顿是什么原因)
phoulx
2023-02-01 12:09:57 +08:00
卡顿是因为 apply_async 返回 AsyncResult 对象,但是运行结果实际在 join()时才执行得到。AsyncResult 可以手动 get()结果,也可以加上 callback 参数来指定回调动作。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/696109

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX