Java多线程:当任务过于耗时,如何优雅地使用线程池

原创 我不是女神ヾ 2024-11-24 21:24 70阅读 0赞

在Java中,当一个任务非常耗时,或者频繁创建新线程会消耗大量系统资源,这时我们就可以考虑使用线程池来优雅地管理这些任务。

以下是一个简单的线程池使用示例:

  1. import java.util.concurrent.ExecutorService;
  2. import java.util.concurrent.Executors;
  3. public class ThreadPoolExample {
  4. public static void main(String[] args) {
  5. // 创建一个固定大小的线程池
  6. ExecutorService executor = Executors.newFixedThreadPool(5);
  7. // 提交任务到线程池执行
  8. for (int i = 0; i < 10; i++) {
  9. Runnable task = () -> System.out.println("Task " + i + " is running...");
  10. executor.execute(task);
  11. }
  12. // 关闭线程池,释放资源
  13. executor.shutdown();
  14. while (!executor.isTerminated())) {
  15. System.out.println("Still running tasks...");
  16. try {
  17. Thread.sleep(1000); // 暂停一秒,模拟耗时操作
  18. } catch (InterruptedException e) {
  19. e.printStackTrace();
  20. }
  21. }
  22. // 线程池已经关闭,可以安全地输出所有任务的执行情况
  23. System.out.println("All tasks have been executed.");
  24. }
  25. }

这个示例中,我们创建了一个固定大小为5的线程池。然后提交了10个耗时的任务到线程池执行。最后,当所有任务都执行完毕后,关闭线程池释放资源。

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

发表评论

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

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

相关阅读