栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用多处理模块时如何提高CPU利用率?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用多处理模块时如何提高CPU利用率?

您实际上并没有在此处同时执行任何操作,因为您正在使用

pool.apply
,它将一直阻塞直到传递给它的任务完成为止。因此,对于中的每个项目
partitions
,您都需要
search_method
在中的某个进程中运行
pool
,等待其完成,然后继续进行下一个项目。这与您在Windows进程管理器中看到的完全吻合。您要
pool.apply_async
改为:

for search_term in search_terms:    results = []    results = [pool.apply_async(search_method, args=(search_term, partitions[x])) for x in range(len(partitions))]    # Get the actual results from the AsyncResult objects returned.    results = [r.get() for r in results]

或者更好的是,使用

pool.map
(以及
functools.partial
将多个参数传递给我们的worker函数的功能):

from functools import partial...for search_term in search_terms:    func = partial(search_method, search_term)    results = pool.map(func, partitions)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614233.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号