Difference between scheduledThread pool and Single Thread Executor.


Sr. No.KeyScheduled Thread PoolSingle Thread Executor
1
Basic
Creates a thread pool that can schedule commands to run after a given delay, or to execute periodically
Tasks are guaranteed to execute sequentially, and no more than one task will be active at any given time
2
Queue
It uses Delay Queue to store tasks. Schedule the task based on time delay.


It uses blocking queue.


3
Thread Lifetime
T he number of threads to keep in the pool, even if they are idle
Recreate thread if killed because of the task.
4.
Thread Pool Size
It always has a single thread running.
The thread pool can grow from zero threads to Integer.MAX_VALUE
5.
Use Case
We should used fixedthreadpool, when we wanted to limit the concurrent task
This type of pool can be used when you want to ensure that Task1 should always run before task2.

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

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

Updated on: 09-Sep-2020

940 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements