05 进程池map方法

Posted work14

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05 进程池map方法相关的知识,希望对你有一定的参考价值。

import time
from multiprocessing import Process,Pool


# def f1(n):
#     time.sleep(1)
#     print(n)

#对比多进程和进程池的效率
def f1(n):
    for i in range(5):
        n = n + i
if __name__ == ‘__main__‘:
    #统计进程池执行100个任务的时间
    s_time = time.time()
    pool = Pool(4)  #里面这个参数是指定进程池中有多少个进程用的,4表示4个进程,如果不传参数,默认开启的进程数一般是cpu的个数
    # pool.map(f1,[1,2])  #参数数据必须是可迭代的
    pool.map(f1,range(100))  #参数数据必须是可迭代的,异步提交任务,自带join功能
    e_time = time.time()
    dif_time = e_time - s_time

    #统计100个进程,来执行100个任务的执行时间
    p_s_t = time.time() #多进程起始时间
    p_list = []
    for i in range(100):
        p = Process(target=f1,args=(i,))
        p.start()
        p_list.append(p)
        # p.join()
    [pp.join() for pp in p_list]
    p_e_t = time.time()
    p_dif_t = p_e_t - p_s_t
    print(‘进程池的时间:‘,dif_time)
    print(‘多进程的执行时间:‘,p_dif_t)
    # 结果:
    # 进程池的时间: 0.40102291107177734
    # 多进程的执行时间: 9.247529029846191

  

以上是关于05 进程池map方法的主要内容,如果未能解决你的问题,请参考以下文章

Python独特的进程池概念

python_并发编程——进程池

python3 进程池

第36篇 多进程的数据共享,进程池的回调函数,线程 什么是GIL锁,Threading模块记

Python并发编程05/ 死锁/递归锁/信号量/GIL锁/进程池/线程池

java中的进程,线程,线程池总结