자바 타이머 사용 하기

자바 컴 파일 처리 정시 작업 에 주로 사용 되 는 클래스 는 자바 util.Timer 와 자바 util.Timer Task 입 니 다.
    
    다음 몇 줄 의 코드 는 정시 에 임 무 를 수행 하 는 타 이 머 를 실현 할 수 있 습 니 다.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

import MailSender.MailSender;//              

public class TimeTest {

	public static void main(String args[]) throws ParseException {
		
		Timer timer = new Timer();
		
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		  Date d1 = dateFormat.parse("2014/6/16 15:28:45");
		timer.schedule(new Task(),d1);
	}
}
	
class Task extends TimerTask{

	@Override
	public void run() {
		/*try {
			Runtime.getRuntime().exec("NotePad.exe");
		} catch (IOException e) {
			e.printStackTrace();
		}*/
		MailSender mailSender=new MailSender();
		boolean isSend = mailSender.SendMail();
		if(isSend){
			System.out.println("task has been excute!");
		}else{
			System.out.println("task has not been excute!");
		}
		System.out.println("       !");
	}
}

    그 중에서 Timer Task 는 Runable 인 터 페 이 스 를 실현 했다.이런 대상 은 기본적으로 run 방법 을 실행 하기 때문에 정시 에 실행 할 기능 코드 를 그 안에 두 면 정시 기능 을 실현 할 수 있다.
    Timer 클래스 의 몇 가지 방법 은 다음 과 같 습 니 다. 
  • public void schedule(TimerTask task,Date time);

  •     이 방법 은 지 정 된 시간 에 지 정 된 임 무 를 수행 하도록 안배 되 어 있다.만약 이 시간 이 이미 지나 갔다 면,즉시 이 임 무 를 집행 하도록 안배 할 것 이다.
  • public void schedule(TimerTask task,long delay,long period);
    은 지정 한 작업 을 지정 한 지연(long delay)이후 부터 중복 되 는 고정 지연 집행 을 하도록 배정 합 니 다.고정 시간 간격(long period)에 가 까 운 후속 집행.고정 지연 집행 에 서 는 지난번 에 실 행 된 실제 집행 시간 에 따라 매번 집행 을 배정 한다.어떤 이유(예 를 들 어 쓰레기 회수 나 다른 배경 활동)로 인해 특정한 집행 이 지연 되면 후속 집행 도 지연 된다.장기 적 으로 볼 때 실행 빈 도 는 일반적으로 지 정 된 주기의 역수(Object.wait(long)가 의존 하 는 시스템 시계 가 정확 하 다 고 가정 합 니 다)보다 약간 느 려 야 합 니 다.고정 지연 실행 은'안정 적'운행 이 필요 한 중복 활동 에 적용 된다.단기 운행 에서 주파 수 를 정확하게 유지 하 는 것 이 장기 운행 보다 더 중요 한 활동 에 적용 된다 는 얘 기다.이것 은 고정된 시간 간격 으로 반 짝 이 는 커서 와 같은 대부분의 애니메이션 작업 을 포함한다.키 를 눌 렀 을 때 자동 으로 문 자 를 반복 하 는 등 인간 활동 에 응 하기 위 한 고정 활동 도 포함 된다. 
  • public void schedule(TimerTask task,Date firstTime,long period);
    은 지정 한 임 무 를 지정 한 시간(firstTime)부터 반복 되 는 고정 지연 집행 을 하도록 배정 합 니 다.
  • public void scheduleAtFixedRate(TimerTask task,long delay,long period);
    에서 지정 한 임 무 를 지정 한 지연(delay)후 중복 되 는 고정 속도 로 수행 하도록 배정 합 니 다.고정된 시간 간격(period)에 가 까 운 후속 집행 을 진행 합 니 다.고정 속도 실행 에 서 는 이미 정 해진 초기 실행 시간 에 따라 매번 실행 을 배정 합 니 다.만약 에 어떤 이유(예 를 들 어 쓰레기 회수 나 다른 배경 활동)로 인해 특정한 집행 이 지연 되면 신속하게 두 번 이상 의 집행 이 나타 나 후속 집행 이'따라 잡 을 수 있 게 할 것 이다.장기 적 으로 실행 빈 도 는 지 정 된 주기의 역수(Object.wait(long)가 의존 하 는 시스템 시계 가 정확 하 다 고 가정)가 될 것 이다. 고정 속도 집행 은 절대적 인 시간 에 민감 한 중복 집행 활동 에 적용 된다.예 를 들 어 매 시간 정시 에 종 을 치 거나 매일 특정한 시간 에 배 정 된 유지 활동 을 실행 하 는 것 이다.
  • public void scheduleAtFixedRate(TimerTask task,Date firstTime,long period);
    에서 지정 한 임 무 를 지정 한 시간 에 중복 되 는 고정 속도 로 수행 하도록 배정 합 니 다.
  • public void cancel();
    이 타 이 머 를 종료 하고 현재 배정 한 모든 작업 을 버 립 니 다.이것 은 현재 실행 중인 작업 을 방해 하지 않 습 니 다.(존재 한다 면)타이머 가 종료 되면 실행 스 레 드 도 종료 되 고 더 많은 작업 을 수행 할 수 없습니다.이 타이머 가 호출 하 는 타이머 작업 의 run 방법 에서 이 방법 을 호출 하면 실행 중인 작업 이 이 타이머 가 수행 하 는 마지막 작업 임 을 절대적 으로 확보 할 수 있 습 니 다.이 방법 을 중복 호출 할 수 있 습 니 다.하지만 두 번 째 와 후속 호출 은 유효 하지 않 습 니 다.
  • public int purge();
    이 타이머 의 작업 대기 열 에서 취 소 된 모든 작업 을 제거 합 니 다.이 방법 을 사용 하면 타이머 의 행동 에 영향 을 주지 않 지만 대기 열 에서 취 소 된 작업 을 참조 할 수 없습니다.이 작업 에 대한 외부 인용 이 없 으 면 쓰레기 회수 에 합격 하 는 대상 이 된다.
  • 좋은 웹페이지 즐겨찾기