Java并发编程:线程池与任务调度案例

原创 比眉伴天荒 2024-11-29 11:15 82阅读 0赞

在Java的并发编程中,线程池和任务调度是非常重要的概念。下面我们将通过一个实际案例来理解它们。

首先,我们创建一个简单的任务类:

  1. public class Task implements Runnable {
  2. private String message;
  3. public Task(String message) {
  4. this.message = message;
  5. }
  6. @Override
  7. public void run() {
  8. System.out.println("Task: " + message);
  9. }
  10. }

接下来,我们将使用ThreadPoolExecutor创建一个线程池,并进行任务调度:

  1. import java.util.concurrent.*;
  2. public class ThreadPoolExample {
  3. private static final int THREAD_COUNT = 5; // 线程池大小
  4. public static void main(String[] args) {
  5. // 创建线程池
  6. ThreadPoolExecutor executor = new ThreadPoolExecutor(
  7. THREAD_COUNT, // 核心线程数
  8. Integer.MAX_VALUE, // 线程最大数量,可无限
  9. 60L, // 单位:秒,任务执行超时时间
  10. TimeUnit.SECONDS,
  11. new ArrayBlockingQueue<>(10) // 工作队列,用于存放等待的任务
  12. );
  13. // 提交任务到线程池
  14. for (int i = 0; i < 20; i++) {
  15. String message = "Task " + i;
  16. executor.execute(new Task(message)));
  17. }
  18. // 关闭线程池
  19. executor.shutdown();
  20. }
  21. }

在这个例子中,我们创建了一个包含5个线程的线程池。然后,我们提交了20个任务到线程池进行执行。

当所有的任务完成后,我们调用executor.shutdown()来关闭线程池并等待所有工作完成。

通过这个案例,你可以深入理解Java并发编程中的线程池和任务调度。

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

发表评论

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

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

相关阅读