(자바학원/자바교육/JAVA교육)자바 스레드(Thread) 라이프사이클, NEW, RUNNABLE, WAITING, BLOCKED, TIMED_WAITING, TERMINATED(자바학원/자바/JAVA/자바강좌/자바동영상/자바강의/JAVA강의/JAVA동영상)

ojc.asia/bbs/board.php?bo_table=LecJava&wr_id=765
ojc.asia

스레드 라이프사이클
java.lang.Thread 클래스는 스래드 상태를 정의하는 정적 State 열거 형을 포함 합니다.
NEW – 아직 실행을 시작하지 않은 새로 생성 된 스레드
RUNNABLE – 실행 중이거나 실행할 준비가 되었지만 리소스 할당을 기다리고 있습니다.
BLOCKED – 동기화 된 블록 / 메소드에 들어가거나 다시 들어가기 위해 모니터 잠금을 획득하기를 기다리고 있습니다.
WAITING – 다른 스레드가 시간 제한없이 특정 작업을 수행 할 때까지 기다립니다.
TIMED_WAITING – 다른 스레드가 지정된 기간 동안 특정 작업을 수행하기를 기다립니다.
TERMINATED – 실행 완료
스레드 라이프사이클 실습
package javatest;
public class ThreadStateTest {
public static void main(String[] args) throws InterruptedException {
Thread t = new Thread(() -> {
Thread self = Thread.currentThread();
System.out.println(self.getName() + " ::: " + self.getState());
for(int i=0; i < 10; i++) {
System.out.print(".");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
System.out.println(t.getState());
t.start();
System.out.println(t.getState());
t.join(); //main Thread가 t 쓰레드가 끝날때 까지 대기
System.out.println(t.getState());
if (t.getState() == Thread.State.TERMINATED) {
System.out.println(t.getName() + " ::: Terminated");
}
}
}
NEW
RUNNABLE
Thread-0 ::: RUNNABLE
..........TERMINATED
Thread-0 ::: Terminated
#자바스레드, #자바쓰레드, #자바Thread, #자바쓰레드예제, #스레드, #자바, #JAVA, #자바동영상, #자바강의, #자바교육, #자바강좌, #자바동영상강의, #추천자바강의, #추천자바강좌, #JAVA동영상, #JAVA강의, #JAVA강좌, #JAVA교육, #JAVA, #추천JAVA강의, #추천JAVA교육, #추천JAVA강좌, #자바소스, #자바온라인교육, #자바온라인강의
댓글 없음:
댓글 쓰기