1. 스레드 기본 정보

package thread.control;

import thread.start.HelloRunnable;

import static thread.util.MyLogger.log;

public class ThreadInfoMain {

    public static void main(String[] args) {
        // main 스레드
        Thread mainThread = Thread.currentThread();
        log("mainThread = " + mainThread);
        log("mainThread.threadId=()=" + mainThread.getId()); // 자동으로 만들어주는 ID
        log("mainThread.getName()=" + mainThread.getName()); // 스레드 이름
        log("mainThread.getPriority()=" + mainThread.getPriority()); // 스레드 우선순위 -> 우선순위가 높을 수록 많이 실행됨 (default 5)
        log("mainThread.getThreadGroup()=" + mainThread.getThreadGroup()); // 스레드 그룹
        log("mainThread.getState()=" + mainThread.getState()); // 스레드의 구동 가능 상태 여부 (RUNNABLE -> 구동 가능 상태)

        System.out.println();

        Thread myThread = new Thread(new HelloRunnable(), "myThread");
        log("mainThread = " + myThread);
        log("mainThread.threadId=()=" + myThread.getId()); // 자동으로 만들어주는 ID
        log("mainThread.getName()=" + myThread.getName()); // 스레드 이름
        log("mainThread.getPriority()=" + myThread.getPriority()); // 스레드 우선순위 -> 우선순위가 높을 수록 많이 실행됨 (default 5)
        log("mainThread.getThreadGroup()=" + myThread.getThreadGroup()); // 스레드 그룹
        log("mainThread.getState()=" + myThread.getState()); // 스레드의 구동 가능 상태 여부 (NEW -> 생성하고 실행 안됨)
    }
}

실행 결과

11:11:17.312 [     main] mainThread = Thread[#1,main,5,main]
11:11:17.317 [     main] mainThread.threadId=()=1
11:11:17.317 [     main] mainThread.getName()=main
11:11:17.320 [     main] mainThread.getPriority()=5
11:11:17.320 [     main] mainThread.getThreadGroup()=java.lang.ThreadGroup[name=main,maxpri=10]
11:11:17.320 [     main] mainThread.getState()=RUNNABLE

11:11:17.321 [     main] mainThread = Thread[#30,myThread,5,main]
11:11:17.321 [     main] mainThread.threadId=()=30
11:11:17.321 [     main] mainThread.getName()=myThread
11:11:17.322 [     main] mainThread.getPriority()=5
11:11:17.322 [     main] mainThread.getThreadGroup()=java.lang.ThreadGroup[name=main,maxpri=10]
11:11:17.322 [     main] mainThread.getState()=NEW

1. 스레드 생성

스레드 생성 시, Runnable 인터페이스 구현체와 스레드의 이름을 전달할 수 있다.

Thread myThread = new Thread(new HelloRunnable(), "myThread");

2. 스레드 객체 정보

log("myThread = " + myThread);

3. 스레드 ID

log("mainThread.threadId=()=" + myThread.threadId());