zoukankan      html  css  js  c++  java
  • Python threadpool传递参数

    threadpool模块是一个很老的实现python线程池的模块,pypi已经建议用multiprocessing代替它了,但是,它使用的便捷性还是征服了一批忠实用户。

    threadpool模块实现多线程只需要如下几行代码:

    1
    2
    3
    4
    5
    from threadpool import *
    pool = ThreadPool(poolsize) 
    requests = makeRequests(some_callable, list_of_args, callback) 
    [pool.putRequest(req) for req in requests] 
    pool.wait()

    它通过传入一个参数组来实现多线程,并且它的多线程是有序的,顺序与参数组中的参数顺序保持一致。

    用它传递参数组的例子如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #----------------------------------------------------------------------
    def hello(m, n, o):
        """"""
        print "m = %s, n = %s, o = %s"%(m, n, o)
          
      
    if __name__ == '__main__':
          
       # 方法1 
        lst_vars_1 = ['1''2''3']
        lst_vars_2 = ['4''5''6']
        func_var = [(lst_vars_1, None), (lst_vars_2, None)]
        # 方法2
        dict_vars_1 = {'m':'1''n':'2''o':'3'}
        dict_vars_2 = {'m':'4''n':'5''o':'6'}
        func_var = [(None, dict_vars_1), (None, dict_vars_2)]   
          
        pool = threadpool.ThreadPool(2)
        requests = threadpool.makeRequests(hello, func_var)
        [pool.putRequest(req) for req in requests]
        pool.wait()

      

  • 相关阅读:
    ES6 变量的解构赋值
    【js重学系列】new
    【js面试系列】手写常见js方法
    【js重学系列】this
    js-继承
    【js重学系列】数组高阶函数
    【js面试系列】数组去重
    云服务器部署项目-基本使用流程
    mongodb-基本使用
    移动端适配
  • 原文地址:https://www.cnblogs.com/ExMan/p/10426335.html
Copyright © 2011-2022 走看看