栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python并行处理

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

Python并行处理

一、查看计算机一次可以运行的最大进程数

一次可以运行的最大进程数受计算机上处理器数量的限制。查询计算机上处理器的数量,如下:

import multiprocessing as mp

print("Number of processors:", mp.cpu_count())

二、开始并行化之前需要注意

multiprocesssing在Ipython控制台起作用,但在Jupyter Notebook中不起作用。

三、Pool Class

可以使用n个处理器初始化Pool,然后将要并行化的函数传递给one of Pools parallization methods.。multiprocessing。Pool()类产生了一组称为worker的进程,可以使用apply()/apply_async()和map()/map_async()方法提交任务。

四、并行化的举例 1.
from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    with Pool(12) as p:        
        print(p.map(f, [1, 2, 3]))

控制台结果:

2.并行化的进度条显示
from multiprocessing import Pool
from tqdm import tqdm

def f(x):
    return x*x

if __name__ == '__main__':
    with Pool(12) as p:
        result = list(tqdm(p.map(f, [1, 2, 3]), total=3))
    print(result)

控制台结果:

map是一次性返回所有子进程的返回值, 自带close,join

from multiprocessing import Pool
from tqdm import tqdm

def f(x):
    return x*x

# 第一种:直接进行多进程
if __name__ == '__main__':
    with Pool(12) as p:
        # print(p.map(f, [1, 2, 3]))            # 这里是输出最后的结果
        print(type(p.map(f, [1, 2, 3])))        # 这里查看一下p.map()的返回值类型   

# 第二种:给多进程进行进度条显示
# if __name__ == '__main__':
#     with Pool(12) as p:
#         result = list(tqdm(p.map(f, [1, 2, 3]), total=3))
#     print(result)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/619419.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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