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
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,