[IT]/java

java.Tread.scheduling

givemebro 2021. 3. 17. 14:52
반응형

Thread scheduling

 

우선순위 방식

우선순위(priority)가 높으면 스케줄링이 될 가능성이 높아짐

스레드 우선 순위는 1~10

default:5

1이 가장 낮은 우선 순위, 10이 가장 높은 우선 순위

package step7;

/*
 * 자바 스레드 스케줄링은 우선 순위 방식
 * 이를 확인해보기 위해
 * 테스트 스레드를 20개 생성하고 start
 * 그중 하나를 우선순위를 10(가장 높은)으로 할당
 * 결과 확인
 */
class Worker implements Runnable {
	public void run() {
		String name = Thread.currentThread().getName();
		int priority = Thread.currentThread().getPriority();
		for (long l = 0; l < 9000000000L; l++) {

		}
		System.out.println(name + " 스레드 실행완료!: " + priority);

	}
}

public class TestThread7 {
	public static void main(String[] args) {
		System.out.println("main Thread 시작");
		Worker w = new Worker();
		for (int i = 1; i <= 20; i++) {
			Thread t = new Thread(w, i + "번째 일꾼 스레드");
			if (i == 9) {// 9번째 스레드 우선순위를 가장 높은 10으로 할당
				t.setPriority(Thread.MAX_PRIORITY);// 10
			}
			t.start();
		}
		System.out.println("main Thread 종료");
	}
}
main Thread 시작
main Thread 종료
9번째 일꾼 스레드 스레드 실행완료!: 10
13번째 일꾼 스레드 스레드 실행완료!: 5
1번째 일꾼 스레드 스레드 실행완료!: 5
5번째 일꾼 스레드 스레드 실행완료!: 5
8번째 일꾼 스레드 스레드 실행완료!: 5
4번째 일꾼 스레드 스레드 실행완료!: 5
3번째 일꾼 스레드 스레드 실행완료!: 5
2번째 일꾼 스레드 스레드 실행완료!: 5
6번째 일꾼 스레드 스레드 실행완료!: 5
20번째 일꾼 스레드 스레드 실행완료!: 5
12번째 일꾼 스레드 스레드 실행완료!: 5
16번째 일꾼 스레드 스레드 실행완료!: 5
17번째 일꾼 스레드 스레드 실행완료!: 5
7번째 일꾼 스레드 스레드 실행완료!: 5
18번째 일꾼 스레드 스레드 실행완료!: 5
14번째 일꾼 스레드 스레드 실행완료!: 5
15번째 일꾼 스레드 스레드 실행완료!: 5
11번째 일꾼 스레드 스레드 실행완료!: 5
10번째 일꾼 스레드 스레드 실행완료!: 5
19번째 일꾼 스레드 스레드 실행완료!: 5
반응형