python threadpool
2015-05-20 19:02
357 查看
线程池threadpool
threadpool可以控制线程的数量。一个简单的例子
#coding=utf8 import threadpool import time,random def hello(str): time.sleep(2) return str def print_result(requests,result): print "the result is %s %r"%(requests.requestID,result) data=[i for i in range(24)] print data poolsize=5 pool=threadpool.ThreadPool(poolsize) requests=threadpool.makeRequests(hello,data,print_result) [pool.putRequest(req) for req in requests] pool.wait()
具体使用应该看借口文档
makeRequests(callable,args_list,callback=None,exc_callback=None) 创建多个计算请求,并允许有不同的参数。 参数列表中的每一个元素是两个元素的元组,分别是位置参数列表和关键字参数字典。 class ThreadPool 线程池类,发布工作请求并收集结果。 __init__(self,num_workers,q_size) 构造函数,设置线程池工作线程数量和最大任务队列长度。 num_workers 是初始化时的线程数量。如果 q_size>0 则会限制工作队列的长度,并且在工作队列满时阻塞继续插入工作请求的任务。 createWorkers(self,num_workers) 增加工作线程数量。 dismissWorkers(self,num_workers) 减少工作线程数量。 pool(self,block) 处理队列中的新结果。也就是循环的调用各个线程结果中的回调和错误回调。不过,当请求队列为空时会抛出 NoResultPending 异常,以表示所有的结果都处理完了。这个特点对于依赖线程执行结果继续加入请求队列的方式不太适合。 putRequest(self,request,block=True,timeout=0) 加入一个任务请求到工作队列。 wait(self) 等待执行结果,直到所有任务完成。 class WorkerThread 工作者线程,供ThreadPool内部使用,不必关注。其自定义方法也只有一个。 class WorkRequest 任务请求类。 __init__(self,callable,args=None,kwds=None,requestID=None,callback=None,exc_callback=None) 创建一个工作请求。
相关文章推荐
- python threadpool 源码分析以及自己封装的简易版线程池
- python线程池threadpool实现篇
- python线程池(threadpool)模块使用
- Python多线程简易版 - 线程池threadpool
- Python ThreadPool模块修改提供操作类接口
- python+gevent+threadpool+cx_Oracle高并发时空指针问题
- python线程池(threadpool)模块使用笔记详解
- Python 线程池(threadpool)
- Python multiprocessing.Pool与threadpool
- 『Python』 ThreadPool 线程池模板
- 关于python线程池threadpool
- Thread pool in python
- 关于python使用threadpool中的函数单个参数和多个参数用法举例
- python线程池(threadpool)模块使用python2.7
- Python-线程池模块(threadpool.py)
- 浅谈python 线程池threadpool之实现
- python 添加 threadpool
- python threadpool 多参数处理
- python线程池(threadpool)模块使用
- python threadpool使用注意事项