更新时间:2023-03-23 来源:黑马程序员 浏览量:

在Java中,创建线程池有两种常见的方式:
1.通过 Executors 工具类提供的静态方法创建线程池。
2.通过 ThreadPoolExecutor 构造函数自定义线程池。
下面是两种方式的代码示例:
通过 Executors 工具类提供的静态方法创建线程池:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolExample {
public static void main(String[] args) {
// 创建固定大小的线程池
ExecutorService executor = Executors.newFixedThreadPool(5);
// 提交任务给线程池
for (int i = 0; i < 10; i++) {
executor.execute(new Task());
}
// 关闭线程池
executor.shutdown();
}
static class Task implements Runnable {
public void run() {
System.out.println("Executing task on thread: " + Thread.currentThread().getName());
}
}
} 2.通过 ThreadPoolExecutor 构造函数自定义线程池:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
public class ThreadPoolExample {
public static void main(String[] args) {
// 自定义线程池
ThreadPoolExecutor executor = new ThreadPoolExecutor(
2, // 核心线程数
5, // 最大线程数
1, // 空闲线程存活时间
TimeUnit.SECONDS, // 存活时间单位
new LinkedBlockingQueue<Runnable>() // 任务队列
);
// 提交任务给线程池
for (int i = 0; i < 10; i++) {
executor.execute(new Task());
}
// 关闭线程池
executor.shutdown();
}
static class Task implements Runnable {
public void run() {
System.out.println("Executing task on thread: " + Thread.currentThread().getName());
}
}
}在上面的示例中,我们创建了两个线程池,一个是固定大小的线程池,一个是自定义线程池。在两个线程池中,我们都提交了 10 个任务给线程池执行。每个任务都只是打印当前线程的名称。最后,我们调用了线程池的 shutdown() 方法关闭线程池。
毕业16个工作日,平均薪资13180元,就业率100%,广州黑马AI智能应用开发(Java)学科20250529班
2026-03-06毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-27