如何高效运用JAVA线程池进行并发处理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2696个文字,预计阅读时间需要11分钟。
使用Executors创建线程池Executors是一个线程池工厂类,提供多种静态方法来创建不同类型的线程池。这些方法简化了线程池的创建和使用。
Executors.newFixedThreadPool():返回一个固定大小的线程池,线程池中的线程数量会保持不变。
该方法返回的线程池中的线程数量是固定的,不会随着任务的增加而增加,因此可以控制线程池的最大并发数。适用于任务数量确定且需要固定并发量的场景。
一、使用 Executors 创建线程池
Executors是一个线程池工厂类,里面有许多静态方法,供开发者调用。
/* 该方法返回一个固定线程数量的线程池,该线程池池中的线程数量始终不变。
* 当有一个新的任务提交时,线程池中若有空闲线程,则立即执行。
* 若没有,则新的任务会被暂存在一个任务队列中,待有线程空闲时,便处理在任务队列中的任务
* 默认等待队列长度为Integer.MAX_VALUE
*/
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(1);
/* 该方法返回一个只有一个线程的线程池。
* 若多余一个任务被提交到线程池,任务会被保存在一个任务队列中,等待线程空闲,按先入先出顺序执行队列中的任务
* 默认等待队列长度为Integer.MAX_VALUE
*/
ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
/*
* 该方法返回一个可根据实际情况调整线程数量的线程池。
* 线程池的线程数量不确定,但若有空闲线程可以复用,则会优先使用可复用的线程。
本文共计2696个文字,预计阅读时间需要11分钟。
使用Executors创建线程池Executors是一个线程池工厂类,提供多种静态方法来创建不同类型的线程池。这些方法简化了线程池的创建和使用。
Executors.newFixedThreadPool():返回一个固定大小的线程池,线程池中的线程数量会保持不变。
该方法返回的线程池中的线程数量是固定的,不会随着任务的增加而增加,因此可以控制线程池的最大并发数。适用于任务数量确定且需要固定并发量的场景。
一、使用 Executors 创建线程池
Executors是一个线程池工厂类,里面有许多静态方法,供开发者调用。
/* 该方法返回一个固定线程数量的线程池,该线程池池中的线程数量始终不变。
* 当有一个新的任务提交时,线程池中若有空闲线程,则立即执行。
* 若没有,则新的任务会被暂存在一个任务队列中,待有线程空闲时,便处理在任务队列中的任务
* 默认等待队列长度为Integer.MAX_VALUE
*/
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(1);
/* 该方法返回一个只有一个线程的线程池。
* 若多余一个任务被提交到线程池,任务会被保存在一个任务队列中,等待线程空闲,按先入先出顺序执行队列中的任务
* 默认等待队列长度为Integer.MAX_VALUE
*/
ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
/*
* 该方法返回一个可根据实际情况调整线程数量的线程池。
* 线程池的线程数量不确定,但若有空闲线程可以复用,则会优先使用可复用的线程。

