多线程实践:如何在Java中实现一个线程池? 原创 叁歲伎倆 2024-09-11 09:42 16阅读 0赞 在Java中,我们可以使用`ExecutorService`和`ThreadPoolExecutor`类来创建和管理线程池。 以下是一个简单的例子,展示了如何创建一个固定大小的线程池: ```java import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadPoolExample { public static void main(String[] args) { // 创建一个固定大小(5个)的线程池 ExecutorService executor = Executors.newFixedThreadPool(5); // 提交任务到线程池 for (int i = 0; i < 10; i++) { Runnable task = () -> { System.out.println("Task " + i + " is running by thread " + Thread.currentThread().getId()); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } }; executor.execute(task); } // 关闭线程池 executor.shutdown(); // 检查线程池是否已关闭且所有任务已完成(没有正在运行的线程) while (!executor.isTerminated()) { System.out.println("仍有线程在执行...")); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } // 确保所有任务已完成 while (executor.getTaskCount() != 0) { System.out.println("仍有未完成的任务..."); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } // 打印所有已提交但尚未完成的任务 for (Runnable task : executor.getTasksForRunning()) { System.out.println("Task " + task + " is running but not completed yet..."); } // 关闭线程池,防止资源泄漏 executor.shutdown(); } } ``` 这个例子创建了一个固定大小(5个)的线程池,并提交了10个任务到线程池。每个任务都会打印一条消息,表示其正在被线程执行。 最后,我们关闭线程池以释放资源。 文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。
相关 多线程实践:如何在Java中实现一个线程池? 在Java中,我们可以使用`ExecutorService`和`ThreadPoolExecutor`类来创建和管理线程池。 以下是一个简单的例子,展示了如何创建一个固定大小 叁歲伎倆/ 2024年09月11日 09:42/ 0 赞/ 17 阅读
相关 多线程(7)如何在Java中实现线程 在Java中,实现线程有两种主要方式:继承Thread类或实现Runnable接口。以下是这两种方法的详细说明和比较。 刺骨的言语ヽ痛彻心扉/ 2024年04月24日 23:05/ 0 赞/ 47 阅读
相关 java线程池:如何在 Java 线程池中提交线程? ![在这里插入图片描述][1b70ec2e4dc0432a86261758c4e4d53a.png] [1b70ec2e4dc0432a86261758c4e4d53a.p 朱雀/ 2024年02月20日 12:30/ 0 赞/ 65 阅读
相关 java多线程:Java 中的线程池是如何实现的? 线程和任务的本质 在Java中,所谓的线程池中的“线程”,其实是被抽象为了一个静态内部类Worker,它基于AQS实现,存放在线程池的`HashSet<Worker> w 向右看齐/ 2024年02月20日 12:22/ 0 赞/ 8 阅读
相关 【多线程】Java如何实现多线程?如何保证线程安全?如何自定义线程池? ![在这里插入图片描述][8d8e0d8a542946af858489a536162608.gif_pic_center] > 个人简介:Java领域新星创作者;阿里云技术博 青旅半醒/ 2024年02月20日 08:20/ 0 赞/ 22 阅读
相关 Java线程池如何实现线程复用 线程池把线程和任务进行解耦,线程归线程,任务归任务,摆脱了通过 Thread 创建线程时“一个线程必须对应一个任务”的限制。在线程池中,同一个线程可以从 BlockingQue 古城微笑少年丶/ 2023年09月26日 16:37/ 0 赞/ 24 阅读
相关 生产实践中创建多线程-线程池配置 <dependency> <groupId>org.springframework.boot</groupId> <artifact - 日理万妓/ 2023年01月17日 12:54/ 0 赞/ 106 阅读
相关 java多线程-线程池 线程池-基本原理 概述 : 提到池,大家应该能想到的就是水池。水池就是一个容器,在该容器中存储了很多的水。那么什么是线程池呢?线程池也是可以看做成一个池子,在该池子 小灰灰/ 2022年09月03日 12:26/ 0 赞/ 286 阅读
相关 Java多线程&线程池 创建线程的两种方式 在Thread子类覆盖的run方法中编写运行代码 在传递给Thread对象的Runnable对象的run方法 Myth丶恋晨/ 2022年05月17日 04:20/ 0 赞/ 283 阅读
还没有评论,来说两句吧...