> Java > java지도 시간 > Java에서 지연 및 예약을 가장 잘 구현하는 방법은 무엇입니까?

Java에서 지연 및 예약을 가장 잘 구현하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-18 21:57:11
원래의
400명이 탐색했습니다.

How to Best Implement Delays and Scheduling in Java?

Java에서 지연 생성

Java에서는 다양한 방법을 통해 지연을 도입할 수 있습니다. 루프 내에서 고정된 간격 지연을 목표로 하는 경우 java.util.concurrent.TimeUnit은 절전 방법을 제공합니다. 지정된 초 동안 일시 중지하려면 TimeUnit.SECONDS.sleep(1);을 사용할 수 있습니다. 그러나 이 접근 방식은 드리프트라는 잠재적인 문제를 제기하며, 이는 각 주기마다 의도한 지연에서 벗어나게 합니다.

유연한 제어 및 작업 예약을 위해서는 ScheduledExecutorService가 더 적합한 솔루션으로 떠오릅니다. ScheduleAtFixedRate 및 ScheduleWithFixedDelay 메소드를 사용하면 지정된 지연 간격에 따라 정확한 작업 실행이 가능합니다.

Java 8에서 ScheduleAtFixedRate를 사용하여 매초마다 myTask를 실행하려면:

public static void main(String[] args) {
    final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
    executorService.scheduleAtFixedRate(App::myTask, 0, 1, TimeUnit.SECONDS);
}

private static void myTask() {
    System.out.println("Running");
}
로그인 후 복사

Java 7 호환성의 경우:

public static void main(String[] args) {
    final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
    executorService.scheduleAtFixedRate(new Runnable() {
        @Override
        public void run() {
            myTask();
        }
    }, 0, 1, TimeUnit.SECONDS);
}

private static void myTask() {
    System.out.println("Running");
}
로그인 후 복사

위 내용은 Java에서 지연 및 예약을 가장 잘 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿