앞서 스레드를 생성하여 start해 봤다.
https://standout.tistory.com/1421
이때
두 개의 쓰레드가 서로 독립적으로 실행되기 때문에
종료 메시지가 어떤 순서로 출력될지 정확히 예측할 수 없다.
종료 메시지는 실행 환경 및 운영 체제에 따라 다를 수 있다.
라는것을 알게되었는데 우선순위를 정할 수 있을까?
스레드의 우선순위는 스레드 스케줄러에게 해당 스레드가 얼마나 중요하다고 알려주는 것
우선순위는 정수 값으로 지정, 보통 1부터 10까지의 범위
`Thread.MIN_PRIORITY`는 가장 낮은 우선순위이며, `Thread.MAX_PRIORITY`는 가장 높은 우선순위이다.
public class PriorityExample {
public static void main(String[] args) {
//두 개의 스레드를 생성
Thread thread1 = new Thread(new MyRunnable(), "Thread 1");
Thread thread2 = new Thread(new MyRunnable(), "Thread 2");
// 각 스레드의 우선순위 설정
thread1.setPriority(Thread.MIN_PRIORITY); // 최소 우선순위
thread2.setPriority(Thread.MAX_PRIORITY); // 최대 우선순위
// thread1.setPriority(1); // 최소 우선순위
// thread2.setPriority(10); // 최대 우선순위
// 스레드 시작
thread1.start();
thread2.start();
}
static class MyRunnable implements Runnable {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + " is running.");
try {
Thread.sleep(100); // 잠시 대기
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
'JAVA' 카테고리의 다른 글
로그 파일을 주기적으로 청소하기, 데몬 스레드의 구현과 실행 (0) | 2024.02.26 |
---|---|
보안상의 이유로 도입된 스레드 그룹: 서로 관련된 스레드를 그룹으로! (0) | 2024.02.26 |
스레드 구현과 실행 + 싱글쓰레드와 멀티쓰레드: start()와 run() (0) | 2024.02.19 |
@interface 나만의 애너테이션 만들기 (0) | 2024.02.15 |
Annotation - @Repeatable (0) | 2024.02.15 |