并发编程:Java中的线程池实践案例

原创 系统管理员 2024-09-27 21:30 173阅读 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++) { // 假设每个任务需要1秒时间
  9. executor.submit(() -> {
  10. try {
  11. Thread.sleep(1000); // 模拟耗时操作
  12. } catch (InterruptedException e) {
  13. e.printStackTrace();
  14. }
  15. System.out.println("Task " + i + " completed in " + 1 + " seconds."); // 输出任务信息
  16. }));
  17. }
  18. // 关闭线程池,不再接受新的任务
  19. executor.shutdown(); // 阻塞直到所有任务完成或线程池关闭(取决于是否还有待提交的任务)
  20. // 检查线程池状态,确保已经关闭
  21. while (!executor.isTerminated())) {
  22. System.out.println("Executor is still running..."); // 输出提示信息
  23. try {
  24. Thread.sleep(1000); // 等待一定时间后再次检查状态
  25. } catch (InterruptedException e) {
  26. e.printStackTrace();
  27. }
  28. }
  29. System.out.println("\nThread pool execution completed. Executor has been closed."); // 输出总结信息
  30. // 如果需要,可以手动删除线程池实例(但通常不需要)
  31. }
  32. }

这个例子中,我们创建了一个固定大小的线程池,然后提交了一系列任务到线程池执行。最后,我们关闭线程池以释放资源。

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

发表评论

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

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

相关阅读