Java에서 몇 초를 지연시키는 방법

Mohammad Irfan 2023년10월12일
  1. Java에서Thread.sleep()메소드를 사용하여 지연시키기
  2. Java에서TimeUnit.sleep()메소드를 사용하여 지연시키기
  3. Java에서ScheduledExecutorService를 사용하여 지연시키기
  4. Java에서ScheduledExecutorService를 사용하여 지연시키기
Java에서 몇 초를 지연시키는 방법

이 자습서에서는 Java에서 지연을 만드는 방법을 소개하고이를 이해하기위한 몇 가지 예제 코드를 나열합니다.

딜레이를 생성하는 방법에는TimeUnit.sleep(),ScheduleAtFixedRate(),Thread.sleep()메소드 등 여러 가지가 있습니다. 예제를 살펴 보겠습니다.

Java에서Thread.sleep()메소드를 사용하여 지연시키기

Thread는 작업을 동시에 생성하고 실행하는 데 사용되는 Java 클래스로 현재 실행을 잠시 일시 중지하는 sleep()메서드를 제공합니다.

public class SimpleTesting {
  public static void main(String[] args) {
    try {
      for (int i = 0; i < 2; i++) {
        Thread.sleep(1000);
        System.out.println("Sleep " + i);
      }
    } catch (Exception e) {
      System.out.println(e);
    }
  }
}

출력:

Sleep 0
Sleep 1

Java에서TimeUnit.sleep()메소드를 사용하여 지연시키기

이 예제에서는 지정된 시간 동안 실행 지연을 만드는 데 사용되는TimeUnit 클래스의sleep()메서드를 사용했습니다. TimeUnit 클래스는 Java의 동시 API 패키지에 속합니다.

import java.util.concurrent.TimeUnit;
public class SimpleTesting {
  public static void main(String[] args) {
    try {
      for (int i = 0; i < 2; i++) {
        TimeUnit.SECONDS.sleep(2);
        System.out.println("Sleep " + i);
      }
    } catch (Exception e) {
      System.out.println(e);
    }
  }
}

출력:

Sleep 0
Sleep 1

Java에서ScheduledExecutorService를 사용하여 지연시키기

Java는 동시 환경에서 실행을 예약하기 위해ScheduledExecutorService 클래스를 제공합니다. 내부에run()메소드를 사용하여 별도의 실행 경로를 실행할 수 있습니다. 아래 예를 참조하십시오.

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class Main {
  public static void main(String args[]) {
    try {
      final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
      executorService.scheduleAtFixedRate(new Runnable() {
        @Override
        public void run() {
          executeTask();
        }
      }, 0, 1, TimeUnit.SECONDS);
    } catch (Exception e) {
      System.out.println(e);
    }
  }
  private static void executeTask() {
    System.out.println("Task Executing... ");
  }
}

출력:

Task Executing... 
Task Executing... 
Task Executing... 

Java에서ScheduledExecutorService를 사용하여 지연시키기

Java 9 이상 버전으로 작업하는 경우 메서드 참조 개념을 사용하여scheduleAtFixedRate()메서드 내에서 메서드를 호출 할 수 있습니다. 아래 예를 참조하십시오.

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class SimpleTesting {
  public static void main(String[] args) {
    try {
      final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
      executorService.scheduleAtFixedRate(SimpleTesting::executeTask, 1, 2, TimeUnit.SECONDS);
    } catch (Exception e) {
      System.out.println(e);
    }
  }
  private static void executeTask() {
    System.out.println("Task Executing... ");
  }
}

출력:

Task Executing... 
Task Executing... 
Task Executing... 

관련 문장 - Java Multithreading