이 글은 주로 자바에서 타이머에 관한 몇 가지 이슈를 예시로 소개하고 있습니다. 도움이 필요한 친구는
타이머 이슈
를 참고하면 됩니다. 타이머의 기본 구성 요소입니다. 사용자 공간이든 커널 공간에서의 프로그램 개발이든 타이머는 기본 구성 요소로서의 지원이 필요한 경우가 많습니다. 타이머 구현에는 타이머 추가, 타이머 취소, 타이머 확인, 만료 실행 등 네 가지 기본 동작 이 필요합니다.
타이머를 디자인하고 다음 세 가지 기본 동작을 구현하세요. 함수 프로토타입이 제공되었습니다. 모든 프로그래밍 언어를 사용하여 데이터를 디자인할 수 있습니다. , 그리고 최대한 효율적으로 많은 수의 타이머를 지원합니다:
// 타이머 추가: 특정 시간 간격 후에 대상 작업을 수행합니다.
// 입력 1: 간격 타이머 시간, 단위 ms
// 입력 2: ExpiryAction 대상 작업
// 반환: 타이머 ID
StartTimer (Interval, ExpiryAction) -> TimerId
// 타이머 취소
// 입력: TimerId
StopTimer(TimerId)
// 타이머 체크
// 시스템은 10ms 마다 이 함수를 호출합니다
PerTickBookkeeping()
더 이상 고민하지 않고 바로 코드로 넘어가겠습니다.
1)Timer.java:
import java.util.ArrayList; public class Timer { private long interval; // 定时器时间,单位 ms private String expiryAction; // 目标操作 private int timerId; // 定时器Id private long waitTime; // 定时器等待时间 // 构造函数 public Timer(){ this.waitTime = 0; } // 添加定时器 public int StartTimer(long interval, String expiryAction, int id){ this.interval = interval; this.expiryAction = expiryAction; this.timerId = id; return timerId; } // 取消定时器 public void StopTimer(int timerId, ArrayList<Timer> timer){ timer.remove(timerId); } // 定时器检查 public void PerTickBookkeeping(){ if (this.interval > this.waitTime) this.waitTime += 10; else{ System.out.println("定时器"+this.timerId+":"+this.expiryAction); this.waitTime = 0; } } public long getInterval() { return interval; } public void setInterval(long interval) { this.interval = interval; } public String getExpiryAction() { return expiryAction; } public void setExpiryAction(String expiryAction) { this.expiryAction = expiryAction; } public int getTimerId() { return timerId; } public void setTimerId(int timerId) { this.timerId = timerId; } public long getWaitTime() { return waitTime; } public void setWaitTime(long waitTime) { this.waitTime = waitTime; } }
2)DoTimer.java:
import java.util.ArrayList; import java.util.Iterator; public class DoTimer extends Thread { private static ArrayList<Timer> timerList; public static void main(String[] args){ timerList = new ArrayList<Timer>(); Timer timer1 = new Timer(); timer1.StartTimer(3000, "我是第一个定时器,等待3秒", 0); Timer timer2 = new Timer(); timer2.StartTimer(4000, "我是第二个定时器,等待4秒", 1); timerList.add(timer1); timerList.add(timer2); //public void run(){} new Thread(){ @Override public void run() { while(true){ Iterator<Timer> it = timerList.iterator(); while(it.hasNext()){ it.next().PerTickBookkeeping(); } try { sleep(10); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }.start(); timer1.StopTimer(timer1.getTimerId(), timerList); } }
【관련 추천】
1. 특별 추천: "php Programmer Toolbox" V0.1 버전 다운로드
위 내용은 Java에서 타이머 기능을 구현하는 코드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!