📅  最后修改于: 2023-12-03 15:32:02.037000             🧑  作者: Mango
线程池是一种重要的基础框架,主要用于管理多线程和线程调度。线程池可以缓存线程,减少创建线程和销毁线程的开销,从而提升程序的性能。Java提供了内置的线程池类ThreadPoolExecutor。
线程池可以通过静态工厂方法Executors创建。Executors提供了几种不同的线程池类型,如下:
ExecutorService pool = Executors.newFixedThreadPool(10);
可以通过submit方法向线程池提交任务。
Future<?> future = pool.submit(new Runnable(){
@Override
public void run() {
// do something...
}
});
submit方法将Runnable或Callable对象提交给线程池执行。返回一个Future对象,可以用于检查任务的执行结果。
在程序退出前,应该关闭线程池,释放线程资源。
pool.shutdown();
ThreadPoolExecutor类有以下构造函数:
public ThreadPoolExecutor(
int corePoolSize, // 核心线程池大小
int maximumPoolSize, // 最大线程池大小
long keepAliveTime, // 空闲线程存活时间
TimeUnit unit, // 时间单位
BlockingQueue<Runnable> workQueue, // 工作队列
ThreadFactory threadFactory, // 线程工厂
RejectedExecutionHandler handler // 拒绝任务处理器
)
其中参数的含义如下:
线程池有以下状态:
Java中的线程池是一种重要的基础框架。线程池可以缓存线程,减少创建和销毁的开销。Java提供的ThreadPoolExecutor类可以用于创建线程池对象,submit方法用于向线程池提交任务,shutdown方法关闭线程池,参数可以对线程池进行配置。线程池有多个状态,需要注意线程池的生命周期。