Java - 6. Thread: Priority

godkimchichi·2020년 9월 22일
0

고급자바

목록 보기
15/47

참고

  • 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
  }
}
profile
갈 길이 멀다

0개의 댓글