[java] 자바에서 스레드 우선순위를 지정하는 방법은?

자바에서는 스레드의 우선순위를 지정할 수 있습니다. 스레드 우선순위는 해당 스레드가 실행되는 우선순위를 나타내며, 높은 우선순위를 가진 스레드는 동시에 실행되는 다른 스레드보다 우선적으로 처리됩니다.

스레드의 우선순위는 Thread 클래스의 setPriority() 메소드를 사용하여 지정할 수 있습니다. 이 메소드는 스레드의 우선순위를 지정하는 매개변수를 받습니다. 우선순위는 1부터 10까지의 범위로 지정할 수 있으며, 10이 가장 높은 우선순위입니다. 스레드에 지정하지 않으면 기본적으로 중간의 우선순위인 5로 지정됩니다.

아래는 스레드 우선순위를 지정하는 예시 코드입니다.

public class Main {
    public static void main(String[] args) {
        // 스레드 생성
        Thread thread1 = new Thread(new MyRunnable());
        Thread thread2 = new Thread(new MyRunnable());

        // 스레드 우선순위 지정
        thread1.setPriority(Thread.MIN_PRIORITY); // 스레드1 우선순위를 가장 낮게 설정
        thread2.setPriority(Thread.MAX_PRIORITY); // 스레드2 우선순위를 가장 높게 설정

        // 스레드 실행
        thread1.start();
        thread2.start();
    }
}

class MyRunnable implements Runnable {
    @Override
    public void run() {
        // 스레드 로직 작성
    }
}

위 예제에서는 Thread 클래스의 setPriority() 메소드를 사용하여 thread1과 thread2의 우선순위를 설정하고, start() 메소드를 호출하여 스레드를 실행합니다. 이렇게 설정된 우선순위에 따라 각 스레드는 실행되며, 우선순위가 높은 스레드는 우선적으로 처리됩니다.

참고 자료: