【线程池】

【线程池】_第1张图片一旦线程池创建完成,可以通过将任务提交给线程池来执行。任务可以是实现了Runnable接口的普通线程,也可以是实现了Callable接口的带返回值的线程。ExecutorService executorService = Executors.newFixedThreadPool(5);
executorService.submit(() -> {
    // 执行任务逻辑
});
// 关闭线程池
executorService.shutdown()

线程池有一个生命周期,它包括创建、运行和关闭三个阶段。创建后线程池可以接受并执行任务,一旦不再需要,可以通过调用shutdown()shutdownNow()方法来关闭线程池。

public ThreadPoolExecutor(int corePoolSize,

                              int maximumPoolSize,

                              long keepAliveTime,

                              TimeUnit unit,

                              BlockingQueue workQueue,

                              ThreadFactory threadFactory) {

        this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,

             threadFactory, defaultHandler);

    }

ThreadPoolExecutor的构造方法包括多个参数,其中一些是线程池的核心参数:corePoolSize: 线程池的核心线程数,即线程池维护的最小线程数。maximumPoolSize: 线程池的最大线程数,即线程池允许的最大线程数。keepAliveTime: 当线程池线程数量超过核心线程数时,多余的空闲线程在终止前等待新任务的最长时间。workQueue: 用于保存等待执行的任务的阻塞队列。

你可能感兴趣的:(android)