5/15 인프런 Java 수강 중 Timer, TimerTask에 관해 궁금한 사항 (쓰레드 공부하고 다시보기)

package com.javalec.api;

import java.util.Timer;
import java.util.TimerTask;

public class TimerEx {
public TimerEx() throws InterruptedException{
System.out.println("^^");
Timer timer = new Timer(true);
TimerTask t1 = new Timer1();
TimerTask t2 = new Timer2();

timer.schedule(t1, 2000);
timer.schedule(t2, 3000);

Thread.sleep(5000);
System.out.println("done");
}
}


처음에 이 코드를 보고 나서는, t1이 실행된 후 2초후에 t2가 실행
그리고 5초후에 쓰레드가 슬립되는 줄 알았는데 아니었다.

모두 병렬로 처리된다.
------(2초에 t1)--(3초에 t2)-------(5초에 슬립)--(done)--> 이다.

메소드를 여러개 정의해두면 사실 순서대로 진행되는 줄 알았는데
이건 좀 다른 케이스인가? 병렬로 실행되는 게 아직은 잘 이해되지 않는데
이 부분은 쓰레드와 관련한 사항같다.

댓글

이 블로그의 인기 게시물

로컬 Tomcat 서버 실행속도 개선

2019.05.23 - SQLAlchemy 의 객체 상태 관리 (expire, refresh, flush, commit) 에 관한 이해

2020.02.17 Python의 multiprocessing 중 Pool.map(), chunksize에 관한 내용