Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

ScheduledThread 풀과 단일 스레드 실행기의 차이점.


Sr. 아니요. 예약된 스레드 풀 단일 스레드 실행기
1
기본
주어진 지연 후에 실행되거나 주기적으로 실행되도록 명령을 예약할 수 있는 스레드 풀을 만듭니다.
작업은 순차적으로 실행되도록 보장되며 주어진 시간에 하나 이상의 작업이 활성화되지 않습니다.
2
대기열
Delay Queue를 사용하여 작업을 저장합니다. 시간 지연에 따라 작업을 예약합니다.


블로킹 큐를 사용합니다.


3
스레드 수명
유휴 상태인 경우에도 풀에 보관할 스레드 수
작업으로 인해 스레드가 종료된 경우 스레드를 재생성합니다.
4.
스레드 풀 크기
항상 단일 스레드가 실행 중입니다.
스레드 풀은 0개의 스레드에서 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");
   }
}