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


序列号要点计划的线程池单线程执行器
1
基础
创建一个线程池,可安排命令在给定的延迟后执行或周期性执行
保证顺序执行任务,并且任何给定时间都不会有一个以上任务处于活动状态
2
队列
它使用延迟队列来存储任务。根据时间延迟计划任务。


它使用阻塞队列。


3
线程生存期
即使在保持池中,保持的线程数,即使它们处于空闲状态
由于任务而遭到杀死时重新创建线程。
4.
线程池大小
它始终具有单线程执行。
线程池可以从零线程增长到 Integer.MAX_VALUE
5.
用例
我们应在希望限制并发任务时使用固定线程池
当需要确保任务 1 始终在任务 2 之前运行时,可以使用此类型的池。

计划线程池的示例

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");
   }
}

单线程执行器的示例

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");
   }
}

更新时间:09-9-2020

1K+ 浏览量

开启你的 职业

完成课程,获得认证

开始
广告