python线程池
线程池原理 1.控制线程,系统可以创建的线程数量有限,如果创建的线程资源数量不能够很好的加以限制,反而会导致系统性能的下降。 2.管理线程,对线程资源的重复利用。 3.提高响应速度:任务到达时,任务可以不需要等到线程创建就能立即执行。 线程池, 通俗的理解就是有一个池子,里面存放着已经创建好的线程资源,当有任务提交给线程池执行时,池中的某个线程就会主动执行该任务,执行完任务后该线程就会继续回到池子中等待下次任务的执行。下面我们就来看一下线程池的基本原理图,如下: 线程池的使用 concurrent.futures 线程池的基类是 concurrent.futures 模块中的 Executor,Executor 提供了两个子类,即 ThreadPoolExecutor 和 ProcessPoolExecutor,其中 ThreadPoolExecutor 用于创建线程池,而 ProcessPoolExecutor 用于创建进程池。 如果使用线程池/进程池来管理并发编程,那么只要将相应的 task 函数提交给线程池/进程池,剩下的事情就由线程池/进程池来搞定。 Exectuor 提供了如下常用方法: submit(fn, *args, **kwargs):将 fn 函数提交给线程池。*args 代表传给 fn 函数的参数,*kwargs 代表以关键字参数的形式为 fn 函数传入参数。