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

序号预定线程池单线程执行器
1
基本的
创建一个线程池,该线程池可以安排命令在给定的延迟后运行或定期执行。 
确保任务按顺序执行,并且在任何给定时间都不会激活一个以上的任务
2
队列
它使用延迟队列存储任务。根据时间安排任务。


它使用阻塞队列。


3
线程寿命
即使空闲,要保留在池中的线程数
如果由于任务而被杀死,请重新创建线程。
4。
线程池大小
它始终只有一个线程在运行。
线程池可以从零个线程增长到Integer.MAX_VALUE
5,
用例
当我们想限制并发任务时,我们应该使用fixedthreadpool
当您要确保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");

   }

}

以上是 ScheduledThread池和单线程执行器之间的区别。 的全部内容, 来源链接: utcz.com/z/340912.html

回到顶部