Java - 6. Thread: Priority


リファレンス
  • T08_ThreadPriorityTest
  • T08_ThreadPriorityTest
    手順1:大文字出力のねじを作成する
    class Thread1 extends Thread {
      @Override
      public void run() {
        for(char ch='A'; ch<='Z'; ch++) {
          System.out.println(ch);
    
          // 아무것도 하지 않는 반복문(시간때우기용)
          for(long i = 1 ; i <= 1000000000L; i++) {}
        }
      }
    }
    ステップ2:小文字出力のねじを作成する
    class Thread2 extends Thread {
      @Override
      public void run() {
        for(char ch='a'; ch<='z'; ch++) {
        System.out.println(ch);
    
          // 아무것도 하지 않는 반복문(시간때우기용)
          for(long i = 1 ; i <= 1000000000L; i++) {}
        }
      }
    }
    プログラムアクチュエータ
    public class T08_ThreadPriorityTest {
      public static void main(String[] args) {
        Thread1 th1 = new Thread1(); // 대문자
        Thread2 th2 = new Thread2(); // 소문자
    
        // 우선 순위는 start()메서드를 호출하기 전에 설정해야 한다.
        th1.setPriority(10); // MAX
        th2.setPriority(1); // MIN
    
        System.out.println("th1의 우선순위 : " + th1.getPriority());
        System.out.println("th2의 우선순위 : " + th2.getPriority());
    
        th1.start();
        th2.start();
    
        try {
          th1.join();
          th2.join();
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
    
        // 최대 우선순위 : Thread.MAX_PRIORITY = 10
        // 최소 우선순위 : Thread.MIN_PRIORITY = 1
        // 보통 우선순위 : Thread.NORM_PRIORITY = 5
      }
    }