스레드: 프로그래밍에서 동시에 실행되는 일련의 작업 단위
-New (생성됨): 스레드가 생성되고 아직 실행되기 전의 상태
이 상태에서는 아직 스레드가 실행되지 않았으므로, 아래와 같은 코드로 스레드를 생성할 수 있다
Thread thread = new Thread();
-Runnable (실행 가능): 스레드가 실행을 기다리는 상태
스레드가 실행을 시작하려면 CPU 시간 할당을 받아야한다
만약 여러 개의 스레드가 실행 가능한 경우, 스케줄러에 의해 스레드가 선택되고 실행될 수 있다
thread.start();
-Running (실행 중): 스레드가 CPU 시간을 할당받고 실제로 실행 중인 상태
스레드는 Run 메소드 내에서 실행되는 작업을 수행하며, 실행이 완료되기 전에는 Running 상태를 유지한다
-Waiting (대기 중): 스레드가 다른 스레드나 리소스의 완료를 기다리는 상태
Waiting 상태는 특정 조건이 충족될 때까지 대기하며, 조건이 충족되면 다시 Runnable 상태로 전환
-Blocked (차단됨): 스레드가 다른 스레드로부터 특정 리소스를 사용하려고 할 때 차단되는 상태
Blocked 상태에서는 다른 스레드가 차단 상태를 해제할 때까지 대기하며, 해당 리소스를 사용할 수 있는 상태가 되면 다시 Runnable 상태로 전환
-Terminated (종료됨): 스레드 실행이 완료되거나 중지된 상태
이 상태에 도달하면 스레드는 제거되며, 더 이상 실행되지 않는다
'의문점 공부하기 > 📌 Java' 카테고리의 다른 글
📌 notify()와 notifyAll()의 차이는 뭘까?! (1) | 2023.07.25 |
---|---|
📌 sleep()과 wait()의 차이는?!?!? (2) | 2023.07.24 |
📌 runnable과 callable의 차이는 무엇일까?? (3) | 2023.07.20 |
📌 스레드 만드는 방법!!!! (0) | 2023.07.19 |
📌 데몬 스레드는 무엇일까?? (0) | 2023.07.18 |