如何优化多线程/进程条件下,关闭连接池的用时?

2021-12-27 17:16:53 +08:00
 Phishion

伪代码如下,我发现整个函数的执行时间倒不是很长,但是关闭连接池,竟然要消耗 1 秒,看起来不多,几千条数据累加起来也挺不得了的,那么有什么办法优化这一部分的代码,让它的关闭耗时没那么高?

from multiprocessing.dummy import Pool as ThreadPool

def my_function(page):
    print(page)

pages_offset = [0, 100, 200, 300]
pool = ThreadPool(5)
pool.map(my_function, pages_offset)
pool.close()
pool.join()
2145 次点击
所在节点    Python
6 条回复
hahaba
2021-12-27 18:39:27 +08:00
建议把业务逻辑说出来,最优解不一定要用上诉伪代码实现
LeeReamond
2021-12-27 19:43:46 +08:00
为什么从多进程库引入的会叫“线程池”,这是进程池啊
shyling
2021-12-27 19:53:43 +08:00
几千条数据要关系几千次 [连接池] ?
shyling
2021-12-27 19:53:51 +08:00
关系->关闭
Phishion
2021-12-28 02:20:08 +08:00
@shyling 我也找到原因了,我关闭连接池太频繁了,现在已经解决了,我之前都是多线程跑网络数据瓶颈不在这上面,现在性能终于上来了,谢谢
ruanimal
2021-12-29 10:41:24 +08:00
@LeeReamond multiprocessing.dummy 没用过?

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

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

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

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

© 2021 V2EX