线程池详解

一、线程池的作用

  • 提升性能:线程池能独立负责线程的创建、维护和分配。主要体现在线程的复用。
  • 线程管理:每个Java线程池会保持一些基本的线程统计信息,如完成的任务数量、空闲时间等。
  • 二、线程池核心类

    1、Executor

    Executor是执行者接口,它的目标是执行目标任务,使任务提交和任务执行解藕。他只包含一个函数式方法:

    void execute(Runnable command);
    

    2、ExecutorService

    继承自Executor。它的目标是对外提供异步任务接收服务并转交给执行者。

    // 提交单个任务
    Future submit(Callable task);
    // 提交批量任务
    List invokeAll(Collection