쓰레드 상태, sleep(), interrupt()

김성수·2023년 6월 12일
0

Java

목록 보기
10/18

들어가면서

제목에 기재된 내용을 정리해본다.

쓰레드 상태

new 키워드로 쓰레드 생성
-> 실행 대기 상태
-> 실행
-> 일시 정지 상태
-> 실행
-> (실행 -> 일시 정지 -> 실행 대기 상태 반복)
-> 종료

일시 정지 메서드

sleep()

join()

wait()

실행 대기 상태 메서드

interrupt()

notify()

yield()

강제로 실행 -> 실행 대기 상태로 전환

sleep()

실행 중이던 쓰레드를 일시 정지 상태로 전환(Timed_Waiting)

sleep() 메서드는 자신 쓰레드만 관리할 수 있다.

static 메서드이기 때문에 Thread로 호출 가능

Thread.sleep(2000)

sleep() 메서드 활성화 도중 interrupt() 메서드가 호출되면 interruptedException이 발생하므로 예외 핸들링이 필요

try{
	Thread.sleep(2000);
}catch(InterruptedException e){
	e.printStackTrace();
}

while문으로 예외 발생을 방지 가능

try{
	while(!Thread.currentThread().isInterrupted()){
    	Thread.sleep(2000);
	}
}catch(InterruptedException e){
	break;
}
System.out.println(Thread.currentThread().getName()); 

Thread thread = new Thread("task", "Thread");

thread.start();

thread.interrupted(); 
profile
깊이 있는 소프트웨어 개발자가 되고 싶습니다.

0개의 댓글