如何在Java中使用线程池实例

原创 深藏阁楼爱情的钟 2024-12-09 16:00 118阅读 0赞

在Java中,我们可以使用ThreadPoolExecutor来创建和管理线程池。以下是一个简单的示例:

  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); // 5个线程
  7. // 提交任务到线程池执行
  8. for (int i = 0; i < 10; i++) { // 10个任务
  9. Runnable task = new Task(i);
  10. executor.execute(task);
  11. }
  12. // 关闭线程池,所有提交的任务都将完成
  13. executor.shutdown();
  14. // 等待所有任务完成
  15. while (!executor.isTerminated()) {
  16. System.out.println("Task is still running...");
  17. try {
  18. Thread.sleep(1000); // 每秒检查一次
  19. } catch (InterruptedException e) {
  20. e.printStackTrace();
  21. }
  22. }
  23. // 所有任务都已经完成,线程池也已经关闭
  24. System.out.println("All tasks completed. ThreadPool closed.");
  25. }
  26. static class Task implements Runnable {
  27. private int index;
  28. public Task(int index) {
  29. this.index = index;
  30. }
  31. @Override
  32. public void run() {
  33. System.out.println("Task " + index + " started...");
  34. try {
  35. Thread.sleep(500); // 模拟耗时操作
  36. } catch (InterruptedException e) {
  37. e.printStackTrace();
  38. }
  39. System.out.println("Task " + index + " completed.");
  40. }
  41. }
  42. }

在这个例子中,我们创建了一个固定大小的线程池(ExecutorService),并提交了10个任务到线程池执行。当所有任务完成后,线程池也被关闭。

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

发表评论

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

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

相关阅读