1. 스레드 기본 정보
package thread.control;
import thread.start.HelloRunnable;
import static util.MyLogger.log;
public class ThreadInfoMain {
public static void main(String[] args) {
// main 스레드
Thread mainThread = Thread.currentThread();
log("mainThread = " + mainThread); // Thread[#1,main,5,main]
log("mainThread.threadId() = " + mainThread.threadId()); // 1
log("mainThread.getName() = " + mainThread.getName()); // main
log("mainThread.getPriority() = " + mainThread.getPriority()); // 5
log("mainThread.getThreadGroup() = " + mainThread.getThreadGroup());// ThreadGroup[name=main,maxpri=10]
log("mainThread.getState() = " + mainThread.getState()); // Runnable
// myThread 스레드
Thread myThread = new Thread(new HelloRunnable(), "myThread");
log("myThread = " + myThread); // Thread[#30,myThread,5,main]
log("myThread.threadId() = " + myThread.threadId()); // 30
log("myThread.getName() = " + myThread.getName()); // myThread
log("myThread.getPriority() = " + myThread.getPriority()); // 5
log("myThread.getThreadGroup() = " + myThread.getThreadGroup());// ThreadGroup[name=main,maxpri=10]
log("myThread.getState() = " + myThread.getState()); // new
}
}
- 스레드 객체 정보 Thread[Id, name,priority,group]
- id : 스레드의 고유 넘버, 자동으로 배정된다.
- name : 사용자 지정 스레드 이름, 지정하지 않으면 thread-01 등 배정이 된다. 중복가능
- priority : 1~10, 스레드의 우선순위를 나타낸다. 운영체제에게 우선순위는 이렇다고 힌트를 주는 역할.
- setPriority()로 우선순위를 셋팅 할 수 있다. 디폴트는 5
- group : 스레드가 속한 스레드 그룹. 위 예제에서 myThread는 main스레드가 생성한 메서드, 관계상 main스레드가 myThread의 부모 스레드이면서 같은 그룹에 속한다.
2. 스레드의 생명 주기
- 스레드 상태 (thread.getState()) : 스레드 현재 상태를 나타낸다.
NEW | 스레드가 아직 시작되지 않은 상태 |
RUNNABLE | 스레드가 실행 중이거나 실행될 준비가 된 상태이다. 운영체제의 스케줄러에 할당된 상태와 CPU에서 실제로 실행되고 있는 상태 둘다 나타낸다. 물리적으로는 나누어져있지만, 사용자 입장에서는 동시에 실행되는 것처럼 보인다. |
WAITING | 스레드가 다른 스레드의 특정 작업이 완료되기를 기다리는 상태 Blocked(동기화 락), Waiting(대기 상태), Timed Waiting(시간 제한 대기 상태)가 있으며, CPU를 사용하지 않는 상태이다 |
TERMINATED : | 스레드가 실행을 마친 상태 스레드가 정상적으로 종료되거나, 예외가 발생하여 종료된 경우 이 상태로 들어간다. 스레드는 한 번 종료되면 다시 시작할 수 없다. |
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 | 김영한 - 인프런
김영한 | 멀티스레드와 동시성을 기초부터 실무 레벨까지 깊이있게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다?
www.inflearn.com
'JAVA' 카테고리의 다른 글
스레드 인터럽트 (0) | 2024.10.31 |
---|---|
스레드 _ JOIN (0) | 2024.10.29 |
API - SimpleDateFormat (날짜 형식으로 포맷) (0) | 2024.10.28 |
스레드 생성과 실행 - Runnable (0) | 2024.10.23 |
스레드 생성과 실행 - 스레드 종류 (0) | 2024.10.23 |