728x90
반응형
쓰레드의 우선순위
쓰레드는 우선순위(priority)라는 속성(멤버변수)을 가지고 있는데, 이 우선순위의 값에 따라서 쓰레드가
얻는 실행시간이 달라집니다. 쓰레드가 수행하는 작업의 중요도에 따라 쓰레드의 우선순위를 서로
다르게 지정하여 특정 쓰레드가 더 많은 작업시간을 갖도록 할 수 있습니다.
※ 우선순위가 1정도 차이나는 경우는 별 차이가 없지만 2차이 이상나면 실행시간에 많은 차이가 있습니다.
[ 쓰레드의 우선순위 지정에 따른 차이 ]
1 2 3 4 5 6 7 8 9 | void setPriority(int newPriority) : 쓰레드의 우선순위를 지정한 값으로 변경한다. int getPriority() : 쓰레드의 우선순위를 반환합니다. public static final int MAX_PRIORITY = 10 // 최대 우선순위 public static final int MIN_PRIORITY = 1 // 최소 우선순위 public static final int NORM_PRIORITY = 5 // 보통 우선순위 ( 기본값 ) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | // 쓰레드 우선순위 예제 class ThreadEx{ public static void main(String args[]){ ThreadEx1 th1 = new ThreadEx1(); ThreadEx2 th2 = new ThreadEx2(); th2.setPriority(7); System.out.println("priority of th1(-) : "+th1.getPriority()); System.out.println("priority of th2(|) : "+th2.getPriority()); th1.start(); th2.start(); } } class ThreadEx1 extends Thread{ pubic void run(){ for(int i=0; i<300; i++){ System.out.print("-"); for(int x=0; x<1000000; x++); // 작업은 지연시키키 위한 for문 } } } class ThreadEx2 extends Thread{ pubic void run(){ for(int i=0; i<300; i++){ System.out.print("|"); for(int x=0; x<1000000; x++); // 작업은 지연시키키 위한 for문 } } } /* 실행결과 priority of th1(-) : 5 priority of th2(-) : 7 ||||||||||||||||||||||||||||||||||||||||---|||||||||||||||||||||||||||| ||||||||||||---||||||||||||||||||||||||||||||||||||---||||||||||||||||| |||||||||||||||||||||||------------------------------------------------ ----------------------------------------------------------------------- --------------- */ | cs |
[출처] [java] 쓰레드의 우선순위|작성자 Simpolor
728x90
반응형
'JAVA > JAVA 스레드' 카테고리의 다른 글
[java] 쓰레드의 동기화 (0) | 2017.11.02 |
---|---|
[java] 쓰레드의 실행제어 (0) | 2017.11.02 |
[java] 데몬 쓰레드 (0) | 2017.11.01 |
[java] 쓰레드 그룹 (0) | 2017.11.01 |
[java] 싱글쓰레드와 멀티쓰레드 (0) | 2017.11.01 |
[java] start()와 run() (0) | 2017.11.01 |
[java] 쓰레드 구현 및 실행 (0) | 2017.11.01 |
[java] 프로세스와 쓰레드 (0) | 2017.11.01 |