쓰레드의 우선순위

NOAH·2021년 1월 27일
0
post-thumbnail
//Setting thread priority

// Setting thread priority by getting int Newpriority
void setPriority(int newPriority)
// returns thread priority
int getPriority()

public static final int MAX_PRIORITY = 10 // max
public static final int MIN_PRIORITY = 1 // min

쓰레드의 멤버변수(속성)중에는 우선순위라는 속성이 있어요

이 우선순위의 값에 따라서 쓰레드가 얻는 실행시간이 달라져요.

쓰레드가 수행하는 작업의 중요도에 따라서 쓰레드의 우선순위를

다르게 지정하여 쓰레드가 더 많은 작업시간을 갖도록 할 수 있어요.

우선순위의 범위는 1 ~ 10 이며, 숫가자 높을수록 우선순위가 높아요.

main method를 수행하느 쓰레드의 우선숭위는 자동적으로 5에요

Ex

파일전송기능이 있는 메신저의 경우, 파일 다운로드를 처리하는 쓰레드보다는 채팅내용을 전송하는 쓰레드의 우선순위가 더 놓아야 사용자가 채팅하는데 불편함이 없을 거시에요.
대신, 파일 다운로드 시간을 더 걸릴 것이에요.


package chapter13;

public class Ex13_6 {
    public static void main(String[] args){
        ThreadEx6_1 th1 = new ThreadEx6_1();
        ThreadEx6_2 th2 = new ThreadEx6_2();

        th2.setPriority(9);

        System.out.println("Priority of th1(-) : " + th1.getPriority());
        System.out.println("Priority of th2(;) : " + th2.getPriority());

        th1.start();
        th2.start();
    }
}

class ThreadEx6_1 extends Thread {
    public void run(){
        for( int i = 0 ; i < 300 ; i++){
            System.out.println("-");
            for(int x = 0 ; x < 100000 ; x++);
        }
    }
}

class ThreadEx6_2 extends Thread {
    public void run(){
        for( int i = 0 ; i < 300 ; i++){
            System.out.println(";");
            for(int x = 0 ; x < 100000 ; x++);
        }
    }
}

Priority of th1(-) : 5
Priority of th2(;) : 9
-;-;-;-;-;-----------------------------------------
---------------------------------------------------
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;```

0개의 댓글