并发编程:Java的线程池使用示例

原创 àì夳堔傛蜴生んèń 2024-09-24 04:54 139阅读 0赞

在Java中,线程池是一种常用的管理线程的方式。它通过预创建一定数量的线程,然后根据需要从这些线程池中获取线程来执行任务。

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

  1. import java.util.concurrent.Executors;
  2. import java.util.concurrent.TimeUnit;
  3. public class ThreadPoolExample {
  4. public static void main(String[] args) {
  5. // 创建一个固定大小的线程池,大小为5个线程
  6. ExecutorService executor = Executors.newFixedThreadPool(5);
  7. // 提交任务到线程池
  8. for (int i = 0; i < 10; i++) {
  9. executor.submit(new Task(i)));
  10. }
  11. // 关闭线程池以释放资源
  12. executor.shutdown();
  13. // 确保所有任务已完成(阻塞)
  14. while (!executor.isTerminated()) {
  15. try {
  16. Thread.sleep(100);
  17. } catch (InterruptedException e) {
  18. e.printStackTrace();
  19. }
  20. }
  21. // 打印出已完成的任务数量
  22. System.out.println("Completed tasks: " + executor.getCompletedTaskCount());
  23. }
  24. static class Task implements Runnable {
  25. private int index;
  26. public Task(int index) {
  27. this.index = index;
  28. }
  29. @Override
  30. public void run() {
  31. try {
  32. Thread.sleep(500 * index)); // 每个任务运行时间不同
  33. } catch (InterruptedException e) {
  34. e.printStackTrace();
  35. }
  36. System.out.println("Task " + index + " completed.");
  37. }
  38. }
  39. }

这个示例创建了一个固定大小的线程池,然后提交了10个不同的任务到线程池。每个任务都会打印出完成的信息,并且线程池会确保所有任务完成后关闭线程池。

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

发表评论

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

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

相关阅读

    相关 Java并发编程线示例

    在Java中,线程池是一种常用的管理线程的方式。它通过维护一组工作线程,并且根据请求动态添加或回收线程,以提高系统的并发处理能力。 以下是一个简单的线程池示例: ```ja