K-DigitalTraining 강의/1. Java
[4주차] 73. Thread, 쓰레드간의 우선순위를 높여주는 setPriority 메소드(완성)
이대곤
2022. 6. 3. 12:46
* 우선순위가 높아진다고 높아진 것만 수행되는게 아니라 이게 더 많이 먼저 수행될 가능성이 높아지는 것 뿐이다.
* 우선순위는 절대값을 비교하는게 아니라 상대적이기 때문에 1,2로 하나 9,10으로 하나 같은 결과가 나온다.
실행중 쓰레드의 우선순위를 변경해보는 코드
class Horizonal extends Thread {
@Override
public void run() {
for (int i = 0; i < 300; i++) {
System.out.print("-");
if (i % 50 == 0)
System.out.println();
}
}
}//
class Vertical extends Thread {
@Override
public void run() {
for (int i = 0; i < 300; i++) {
System.out.print("|");
if (i % 50 == 0)
System.out.println();
}
}
}//
public class Ex10_04_Thread {
public static void main(String[] args) {
System.out.println("프로그램 시작");
Horizonal h = new Horizonal();
Vertical v = new Vertical();
h.start();
v.start();
// 아무런 우선순위를 정해주지 않으면 디폴트로 5순위임(우선순위: 1 ~ 10 범위), 숫자가 클수록 우선순위가 높음
System.out.println("h의 Priority: " + h.getPriority());
System.out.println("v의 Priority: " + v.getPriority());
v.setPriority(7); // 설정된 우선순위를 7로 높여줌
System.out.println("v의 Priority: " + v.getPriority());
System.out.println("프로그램 종료");
}
}//
실행결과
프로그램 시작
h의 Priority: 5
|-
------
|||||||||||||||||||||||||||||||||||v의 Priority: 5
|||||||||||----------||||
||||||||||||||||||||||||||||||||||||||||||||||||||
|||||||||||||v의 Priority: 7
|||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||
|||||||||||||||||||||||||||||||||||||||||||||||||-프로그램 종료
---------------------------------
--------------------------------------------------
--------------------------------------------------
--------------------------------------------------
--------------------------------------------------
-------------------------------------------------