实现功能
有15个列表,尝试多进程并发处理,每个列表一个进程,进程数和 CPU 核数一致
实现代码
import multiprocessing
'''
有15个列表,尝试多进程并发处理,每个列表一个进程,进程数和 CPU 核数一致
'''
def sum_list(lst):
return sum(lst)
if __name__ == '__main__':
# 获取 CPU 核数
num_cores = multiprocessing.cpu_count()
lists = [[1,2,3], [4,5,6], [7,8,9], [10,11,12], [13,14,15],
[16,17,18], [19,20,21], [22,23,24], [25,26,27], [28,29,30],
[31,32,33], [34,35,36], [37,38,39], [40,41,42], [43,44,45]]
pool = multiprocessing.Pool(processes=num_cores)
# 向进程池提交任务,列表每个元素是一个任务
results = []
for i in lists:
res = pool.apply_async(sum_list, args=(i,))
results.append(res.get())
# 另一种等价方式,使用map
# results = pool.map(sum_list, lists)
pool.close()
pool.join()
print(results)
实现效果
本人读研期间发表5篇SCI数据挖掘相关论文,现在某研究院从事数据挖掘相关科研工作,对数据挖掘有一定认知和理解,会结合自身科研实践经历不定期分享关于python机器学习、深度学习、数据挖掘基础知识与案例。
致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。
邀请三个朋友关注V订阅号:数据杂坛,即可在后台联系我获取相关数据集和源码,送有关数据分析、数据挖掘、机器学习、深度学习相关的电子书籍。