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); } }
작업 - 실행될 작업 지연 - 작업 실행의 지연 시간, 밀리초 기간 - 작업 실행 사이의 시간 간격
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); } }
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!