线程池(Thread Pool)是一种并发编程中常用的技术,用于管理和重用线程。它由线程池管理器、工作队列和线程池线程组成。
线程池的基本概念是,在应用程序启动时创建一定数量的线程,并将它们保存在线程池中。当需要执行任务时,从线程池中获取一个空闲的线程,将任务分配给该线程执行。当任务执行完毕后,线程将返回到线程池,可以被其他任务复用。
使用线程池最大的原因就是可以根据系统的需求和硬件环境灵活的控制线程的数量,且可以对所有线程进行统一的管理和控制,从而提高系统的运行效率,降低系统运行运行压力。
通过python可以很方便的使用线程池。
首先引入包:
from concurrent.futures import ThreadPoolExecutor
在主程序中创建线程池:
with ThreadPoolExecutor(20) as t:
for i in range(10000):
t.submit(func)
上文中我们创建了一个包含20个线程的线程池,然后向线程池里扔了10000个任务。
t.submit表示提交任务到线程池中,第一个参数为任务函数(注意不要带函数的括号),第二个参数用来放任务函数的传参。