개발/Java
Thread sleep(), join()
멍냐옹2
2023. 2. 20. 16:14
반응형
Thread에 존재하는 sleep()과 join 메소드에 대해 알아보자
1. sleep()
1) 정의
sleep메소드는 Thread가 동작하면서 ()안에 적은 밀리초만큼 동작한다
1000ms = 1s
public class CleanRunnable implements Runnable {
@Override
public void run(){
System.out.println("===== 직원 청소 시작 (Runnable) =====");
for (int i = 2; i <= 10; i+=2) {
System.out.println("(직원) " + i + "번방 청소 중 (Runnable) ");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
System.out.println("===== 직원 청소 완료 (Runnable) =====");
}
}
2) 호출
CleanRunnable cleanRunnable = new CleanRunnable();
Thread thread = new Thread(cleanRunnable);
thread.start();
출력된 시간을 보면 1초마다 출력된 것을 확인 할 수 있다.
2. Join()
1) 호출
메소드 실행 시 중간에 thread.join(ms)를 입력하면 해당 start()함수 호출 후 2.5초가 지나면 cleanByBoss()함수가 호출된다.
CleanRunnable cleanRunnable = new CleanRunnable();
Thread thread = new Thread(cleanRunnable);
thread.start();
try {
thread.join(2500); // 2.5초 대기
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
cleanByBoss();
직원 청소가 3개 시작 후 사장청소가 시작된 것을 보면 알 수 있다.
해당 내용은 "인프런" - "나도코딩의 자바 기본편 - 풀코스 (20시간)"을 학습하며 정리한 내용입니다.
틀린 사항이 있을 경우, 알려주시면 감사하겠습니다 :)
반응형