package CHAPTER12;

//우선순위를 테스트할 사용자 정의 스레드 클래스
class PriorityThread extends Thread {
	public PriorityThread(String name) {
		super(name); // 스레드 이름 설정
	}

	// 스레드가 실행할 코드
	public void run() {
		for (int i = 1; i <= 3; i++) {
			// 현재 스레드 이름과 우선순위 출력
			System.out.println(getName() + " 실행 중 (우선순위: " + getPriority() + ")");
			try {
				Thread.sleep(200); // 잠깐 대기
			} catch (InterruptedException e) {
				// 예외 무시
			}
		}
	}
}

public class C12_03_ThreadPriorityTest { // 스레드 우선순위 테스트 예제
	public static void main(String[] args) {
		// 스레드 생성
		PriorityThread t1 = new PriorityThread("Thread-1");
		PriorityThread t2 = new PriorityThread("Thread-2");
		PriorityThread t3 = new PriorityThread("Thread-3");

		// 우선순위 설정
		t1.setPriority(Thread.MIN_PRIORITY); // 우선순위 1
		t2.setPriority(Thread.NORM_PRIORITY); // 우선순위 5 (기본값)
		t3.setPriority(Thread.MAX_PRIORITY); // 우선순위 10

		// 스레드 실행 (실제 실행 순서는 JVM 스케줄러에 따라 달라짐)
		t1.start();
		t2.start();
		t3.start();
	}
}
