본문 바로가기

JAVA/JAVA

자바 예제 - Thread 를 이용한 우선순위 설정

반응형

** 두개 이상의 Thread를 가동시키면 가능하면 공평하게 실행이 되게끔 스케쥴링 된다.


그런데 만약 특정객체가 먼저 일이 끝날 수 있도록 요구된다면 쓰레드의 우선순위를 설정.

반드시 그것이 먼저 끝나는 것을 보장하지 않는다.



** 쓰레드의 우선순위를 설정하는 메소드

setPriority(정수값)


정수값의 범위 : 1 ~ 10



** 우선순위 주는 예제


// 우선순위 주기

class Person extends Thread{

private String name;

public Person(String name){

this.name = name;

}


public void run(){

for (int i = 1; i <= 10 ; i++ ){

System.out.println("Hello, " + name);


// 딜레이되는 시간 일부러 주려고 함

try{

Thread.sleep(100);

} catch(Exception e){


}

}

}

}


class  PersonTest03{

public static void main(String[] args) {


Person p1 = new Person("송인욱");

Person p2 = new Person("최영록");

Person p3 = new Person("이학균");


p3.setPriority(10);

p2.setPriority(Thread.MAX_PRIORITY);

p1.setPriority(Thread.MIN_PRIORITY);


p1.start();

p2.start();

p3.start();


// System.out.println("최고 우선순위 : " + Thread.MAX_PRIORITY); //10

// System.out.println("최저 우선순위 : " + Thread.MIN_PRIORITY); // 1


}

}



반응형