zoukankan      html  css  js  c++  java
  • pool创建多进程

    这中方式用的比较多,毕竟要控制并发数量,不可能不限制并发数

     1 #_*_coding:utf-8_*_
     2 from multiprocessing import  Pool
     3 import time
     4 
     5 def f(x):
     6     #制造一个进程超时的效果
     7     if x == 4:
     8         time.sleep(4)
     9     else:
    10         time.sleep(1)
    11     return x*x
    12 
    13 
    14 
    15 if __name__ == '__main__':
    16    pool = Pool(processes=4)
    17    res_list = []
    18    #执行方法,res= pool.apply_async(f,[i,])  这只是一种写法.以下这些行用这一条就能搞定print pool.map(f,range(5))
    19    for i in range(5):
    20     #异步方式
    21     res= pool.apply_async(f,[i,])
    22     print '----:',i
    23     res_list.append(res)
    24    #循环获取结果
    25    for i in res_list:
    26         try:
    27            #打印结果,如果获取结果超过2秒钟将报异常
    28            print i.get(timeout=2)
    29         except Exception:
    30             print "进程:%s 获取结果超时"% i

    显示结果:

    ----: 0
    ----: 1
    ----: 2
    ----: 3
    ----: 4
    0
    1
    4
    9
    进程:<multiprocessing.pool.ApplyResult object at 0x00000000026C9CF8> 获取结果超时

    这个例子主要是告诉大家如何使用pool,例子中可以使用print pool.map(f,range(5))就搞定。不用写那么多行

    每个人的写法都不一样 所以就看大家的了

  • 相关阅读:
    HTML--1标签表格
    HTML--4格式布局
    HTML--3css样式表
    快速制作网页的方法
    表单
    表单练习——邮箱注册
    斐波那契数列
    0125 多线程 继承Thread 练习
    Hash(哈希)
    [COI2007] [luogu P1823] Patrik 音乐会的等待 解题报告 (单调栈)
  • 原文地址:https://www.cnblogs.com/menkeyi/p/5822716.html
Copyright © 2011-2022 走看看