zoukankan      html  css  js  c++  java
  • 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
    

      

  • 相关阅读:
    eclipse tomcat插件
    eclipse.ini
    iBatis杂记
    oracle 10g express 下载网址
    免费ftp客户端 winscp
    maven web app 发布到Tomcat
    sqlserver获取本月最后一天
    ArrayCollection和ComboBox
    flex框架 Cairngorm
    HDU3420 Bus Fair
  • 原文地址:https://www.cnblogs.com/work14/p/10267078.html
Copyright © 2011-2022 走看看