python构造线程池_python线程池threadpool实现篇

本文详细介绍了Python线程池ThreadPool的工作流程,包括线程池创建、工作线程启动、任务创建与推送、线程处理任务以及任务结束处理等步骤。ThreadPool类的各个方法如`__init__`, `createWorkers`, `dismissWorkers`等也被详细阐述。通过示例展示了如何创建线程池实例并使用。" 113116007,10295261,MySQL一对多查询取最新数据:解决多表关联重复问题,"['数据库设计', 'SQL查询', '数据处理', 'MySQL操作', '多表查询']
摘要由CSDN通过智能技术生成

本文为大家分享了threadpool线程池中所有的操作,供大家参考,具体内容如下

首先介绍一下自己使用到的名词:

工作线程(worker):创建线程池时,按照指定的线程数量,创建工作线程,等待从任务队列中get任务;

任务(requests):即工作线程处理的任务,任务可能成千上万个,但是工作线程只有少数。任务通过          makeRequests来创建

任务队列(request_queue):存放任务的队列,使用了queue实现的。工作线程从任务队列中get任务进行处理;

任务处理函数(callable):工作线程get到任务后,通过调用任务的任务处理函数即(request.callable_)具体     的     处理任务,并返回处理结果;

任务结果队列(result_queue):任务处理完成后,将返回的处理结果,放入到任务结果队列中(包括异常);

任务异常处理函数或回调(exc_callback):从任务结果队列中get结果,如果设置了异常,则需要调用异常回调处理异常;

任务结果回调(callback):从任务结果队列中get结果,对result进行进一步处理;

上一节介绍了线程池threadpool的安装和使用,本节将主要介绍线程池工作的主要流程:

(1)线程池的创建

(2)工作线程的启动

(3)任务的创建

(4)任务的推送到线程池

(5)线程处理任务

(6)任务结束处理

(7)工作线程的退出

下面是threadpool的定义:

class ThreadPool:

"""A thread pool, distributing work requests and collecting results.

See the module docstring for more information.

"""

def __init__(self, num_workers, q_size=0, resq_size=0, poll_timeout=5):

pass

def createWorkers(self, num_workers, poll_timeout=5):

pass

def dismissWorkers(self, num_workers, do_join=False):

pass

def joinAllDismissedWorkers(self):

pass

def putRequest(self, request, block=True, timeout=None):

pass

def poll(self, block=False):

pass

def wait(self):

pass

1、线程池的创建(ThreadPool(args))

task_pool=threadpool.ThreadPool(num_works)

task_pool=threadpool.ThreadPool(num_works)

def __init__(self, num_workers, q_size=0, resq_size=0, poll_timeout=5):

"""Set up the thread pool and start num_workers worker threads.

``num_workers`` is the number of worker threads to start initially.

If ``q_size > 0`` the size of the work *request queue* is limited and

the thread pool blocks when the queue is full and it tries to put

more work requests in it (see ``putRequest`` method), unless you also

use a positive ``timeout`` value for ``putRequest``.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值