更新时间: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() 方法关闭线程池。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19