Java线程池管理:通过实例看 ThreadPoolExecutor 的应用

原创 骑猪看日落 2024-12-13 00:18 92阅读 0赞

ThreadPoolExecutor是Java中用于线程池管理的类,它简化了多线程环境下的任务调度和资源控制。以下是一个通过实例理解ThreadPoolExecutor的应用的例子:

  1. // 创建一个线程池,大小为10个线程
  2. ThreadPoolExecutor executor = new ThreadPoolExecutor(10, // 线程池的最大并发数
  3. 60, // 每个任务的执行时间最长为60秒
  4. TimeUnit.SECONDS, // 时间单位
  5. new ArrayBlockingQueue<>(// 队列,用于线程任务的提交和接收
  6. 20, // 最大容量
  7. true)); // 非阻塞队列
  8. // 提交一个任务到线程池中执行
  9. executor.execute(() -> {
  10. System.out.println("Task started..."); // 执行任务的开始
  11. try {
  12. Thread.sleep(500); // 暂停500毫秒
  13. } catch (InterruptedException e) {
  14. e.printStackTrace();
  15. }
  16. System.out.println("Task completed..."); // 执行任务完成
  17. }));
  18. // 关闭线程池,释放资源
  19. executor.shutdown(); // 阻塞直到所有任务完成或取消
  20. while (!executor.isTerminated()) { // 等待所有任务完成
  21. try {
  22. Thread.sleep(100); // 每秒检查一次
  23. } catch (InterruptedException e) {
  24. e.printStackTrace();
  25. }
  26. }

在这个例子中,我们创建了一个线程池,大小为10个线程。然后提交一个任务到线程池执行,并在完成后关闭线程池。

通过这种方式,我们可以有效地管理和控制线程的使用,避免资源浪费和系统压力过大。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,92人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java线ThreadPoolExecutor

    为什么使用线程池 如果每次使用线程都创建,每次创建和销毁的开销会很大,线程池主要用来解决线程生命周期开销问题和资源不足问题,也消除了线程创建所带来的延迟。 线