scheduledThread 池和单线程执行器之间的区别。

javaobject oriented programmingprogramming更新于 2025/11/13 8:12:17

Sr.否。关键计划线程池单线程执行器
1
基本
创建一个线程池,可以安排命令在给定延迟后运行,或定期执行。 
保证任务按顺序执行,并且在任何给定时间都不会有超过一个任务处于活动状态
2
队列
使用延迟队列来存储任务。根据时间延迟安排任务。


它使用阻塞队列。


3
线程生命周期
即使线程处于空闲状态,也要保留在池中的线​​程数
如果由于任务而被终止,则重新创建线程。
4.
线程池大小
它始终有一个线程在运行。
线程池可以从零线程增长到 Integer.MAX_VALUE
5.
用例
当我们想要限制并发任务时,应该使用固定线程池
当您想确保 Task1 始终在 Task2 之前运行时,可以使用这种类型的池。

ScheduledThreadPool 示例

public class ScheduledThreadPoolExample {
   public static void main(String args[]) {
      ScheduledExecutorService services = Executors.newScheduledThreadPool(10);
      services.schedule(new Task(), 10, TimeUnit.SECONDS);
      services.scheduleAtFixedRate(new Task(), 15, 10, TimeUnit.SECONDS);
      //(new Thread(new Main())).start();
   }
}
public class Task implements Runnable {
   @Override
   public void run() {
      System.out.println("In Run");
   }
}

SingleThreadExecutor 示例

public class Main {
   public static void main(String args[]) {
      ExecutorService services = Executors.newSingleThreadExecutor();
      Future<?> future = services.submit(new Task());
   }
}
public class Task implements Runnable {
   @Override
   public void run() {
      System.out.println("In Run");
   }
}

相关文章


有用资源