Java并发工具库使用:定时器和线程池示例

原创 迷南。 2024-10-21 09:33 146阅读 0赞

Java的并发工具库主要包括java.util.concurrent包,其中包含了多种线程管理工具。以下我们将通过两个例子来演示定时器和线程池的使用。

  1. 定时器(java.util.concurrent.Timer
  1. import java.util.concurrent.TimeUnit;
  2. public class TimerExample {
  3. private final Timer timer = new Timer();
  4. public void scheduleTask(String taskName, long delay) {
  5. timer.schedule(new TimerTask() {
  6. @Override
  7. public void run() {
  8. System.out.println(taskName + " executed after " + delay + " milliseconds");
  9. }
  10. }, delay, TimeUnit.MILLISECONDS);
  11. }
  12. public static void main(String[] args) {
  13. TimerExample example = new TimerExample();
  14. example.scheduleTask("Task 1", 2000); // Delay for 2 seconds
  15. example.scheduleTask("Task 2", 5000); // Delay for 5 seconds
  16. }
  17. }

在这个例子中,我们创建了一个定时器,并通过它来安排任务。任务在指定的时间延迟后执行。

  1. 线程池(java.util.concurrent.Executors

线程池提供了一种管理和重复利用多个线程的方式。下面是一个使用线程池的简单示例:

  1. import java.util.concurrent.ExecutorService;
  2. import java.util.concurrent.Executors;
  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++) { // 每次提交10个任务
  9. Runnable task = new Task(i);
  10. executor.execute(task); // 执行任务
  11. }
  12. // 关闭线程池,所有提交的任务会全部被取消并等待被处理
  13. executor.shutdown();
  14. }
  15. }
  16. class Task implements Runnable {
  17. private int index;
  18. public Task(int index) {
  19. this.index = index;
  20. }
  21. @Override
  22. public void run() {
  23. System.out.println("Task " + index + " executed by thread " + Thread.currentThread().getName());
  24. }
  25. }

在这个例子中,我们创建了一个固定大小的线程池,然后提交了10个任务到线程池执行。每个任务都会在独立的线程上运行。当所有任务完成后,我们会关闭线程池以释放资源并等待其他任务被处理。

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

发表评论

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

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

相关阅读