> Java > java지도 시간 > Java에서 ScheduleAtFixedRate를 사용하는 방법

Java에서 ScheduleAtFixedRate를 사용하는 방법

WBOY
풀어 주다: 2023-06-03 12:37:51
앞으로
1489명이 탐색했습니다.

scheduleAtFixedRate(작업, 시간, 기간)

task - 예약할 작업 시간 - 작업이 처음 실행되는 시간 period - 작업을 실행하는 시간 간격(밀리초)

기능: 시간은 다음과 같습니다. 작업이 처음 실행될 때 시간을 초과하고 그 이후부터는 매 주기마다 작업을 반복합니다. 밀리초

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
 
public class MyTimerTask extends TimerTask {
    @Override
    public void run() {
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
        System.out.println("Current Time:"+format.format(calendar.getTime()));//获取当前系统时间
        System.out.println("NO.1");
    }
    public static void main(String[] args) {
        MyTimerTask task = new MyTimerTask();
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
        System.out.println(format.format(calendar.getTime()));
        calendar.add(Calendar.SECOND,3);//获取距离当前时间3秒后的时间
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(task,calendar.getTime(),2000);
    }
}
로그인 후 복사

scheduleAtFixedRate(task, 지연, 기간)

작업 - 실행될 작업 지연 - 작업 실행의 지연 시간, 밀리초 기간 - 작업 실행 사이의 시간 간격

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
 
public class MyTimerTask extends TimerTask {
    @Override
    public void run() {
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
        System.out.println("Current Time:"+format.format(calendar.getTime()));//获取当前系统时间
        System.out.println("NO.1");
    }
    public static void main(String[] args) {
        MyTimerTask task = new MyTimerTask();
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
        System.out.println(format.format(calendar.getTime()));
        calendar.add(Calendar.SECOND,3);//获取距离当前时间3秒后的时间
        Timer timer = new Timer();
        //timer.scheduleAtFixedRate(task,calendar.getTime(),2000);
        timer.scheduleAtFixedRate(task,1000,2000);
    }
}
로그인 후 복사

scheduleAtFixedRate 및 ScheduleWithFixedDelay 차이점

1) ScheduleAtFixedRate: 실행 가능 항목을 전달하여 첫 번째 초기화 실행 시간, 주기 시간, 단위 시간을 사용자 정의할 수 있습니다 ------- 생성 및 지정된 초기 지연 시간(1분마다 한 번 또는 다른 시간에 실행) 후에 주기적 작업을 실행하면 처음으로 실행됩니다. 실행 중에 예외가 발생하여 작업이 중지되었습니다.

2) ScheduleWithFixedDelay: 이전과 유사 ----- 주기적인 작업, 첫 번째 실행 및 예외 생성 및 실행

A: 1초 안에 작업을 실행하고, 각 작업 실행 시간은 500ms입니다=== = 두 가지 유형

B: 작업 실행 시간이 너무 깁니다. 예를 들어 간격이 1초이고 실행 시간이 3초입니다====이 경우에는 차이가 있는데 주로 주기 시간의 차이입니다

scheduleWithFixedDelay 이 방법에서는 하나의 작업 실행 기간이 주기 시간을 초과하면 다음 작업은 작업 실행 종료 시간을 기준으로 실행 지연을 계산합니다(예: 간격이 1초이고 실행 시간이 3초인 경우 실행은 이론상으로는 10시 4분에 새로운 작업이 실행되어야 하는데, 이 방법을 통해 실행이 10:06에 종료되고, 10을 기준으로 1초의 지연을 두고 새 작업이 실행됩니다. :06)

scheduleAtFixedRate 메소드 (예: 간격이 1s이고 실행 시간이 3s인 경우 실행은 10:03에 시작되어 10:06에 종료됩니다. 작업은 10:04 및 10:05에 누적됩니다. 10:06 기준으로 지연 시간을 늘리는 대신 즉시 실행됩니다

위 내용은 Java에서 ScheduleAtFixedRate를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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