Skip to content

线程池

为什么要使用线程池

使用线程池主要有以下三个原因:

  1. 创建/销毁线程需要消耗系统资源,线程池可以**复用已创建的线程**。
  2. 控制并发的数量。并发数量过多,可能会导致资源消耗过多,从而造成服务器崩溃。(主要原因)
  3. 可以对线程做统一管理

线程池的原理

Java中的线程池顶层接口是Executor接口,ThreadPoolExecutor是这个接口的实现类。

ThreadPoolExecutor在创建线程时,会将线程封装成**工作线程worker**,并放入**工作线程组**中,然后这个worker反复从阻塞队列中拿任务去执行。