-
210423_5(동시스레드 우선순위)JAVA(Sol)(정리대기중..언젠가) 2021. 4. 23. 15:15
우선순위 부여하기
특정 스레드에는 우선권을 부여하기
static int Max_PRIORITY : 10 높다
static int MIN_PRIORITY : 1 낮음
static int NORM_PRIORITY : 5 보통
부여할때
void setPriority (int priority);
setPriority(10);
setPriority(5);
setPriority(1);
setPriority(5);
거북이1 ===> 우선순위가 없다면 1번이 먼저도착할 확률이 높다.
setPriority(5);
거북이2
setPriority(10);
거북이3 ===> 우선순위 적용되면 3번이 먼저 도착할 확률이 높다
package chapter16; //우선순위가 적용된 경우 class RunThread3 extends Thread { public RunThread3(String name) { super(name); } public void run() { for (int i = 1; i <= 5000; i++) { if (i % 50 == 0) System.out.println("Thread[" + getName() + "] :" + i); } } } public class SchedulingTest3 { public static void main(String[] args) { Thread[] t = new RunThread3[3]; t[0] = new RunThread3("☆"); t[1] = new RunThread3("◎"); t[2] = new RunThread3("●"); t[0].start(); t[0].setPriority(10); // 먼저끝날확률이 높다 t[1].start(); t[1].setPriority(5); // (5)syso메서드와 우선순위가 비슷하다 t[2].start(); t[2].setPriority(1); System.out.println("Thread.MAX_PRIORITY" + Thread.MAX_PRIORITY);//내장상수(대문자) System.out.println("Thread.NORM_PRIORITY" + Thread.NORM_PRIORITY); System.out.println("Thread.MIN_PRIORITY" + Thread.MIN_PRIORITY); System.out.println("t[0]" + t[0].getPriority()); System.out.println("t[1]" + t[1].getPriority()); System.out.println("t[2]" + t[2].getPriority()); } }
주의
동시성 sleep()과 우선순위 setPriority()는 같이 사용하면 안된다
서로가 서로를 방해한다.
package chapter16; //동기화와 우선순위는 함께 사용하지 않는다 class RunThread4 extends Thread { public RunThread4(String name) { super(name); } public void run() { for (int i = 1; i <= 5000; i++) { if (i % 50 == 0) System.out.println("Thread[" + getName() + "]." + i); try { sleep(1); // 동시성(동기화) } catch (InterruptedException e) { } } } } public class SchedulingTest4 { public static void main(String[] args) { Thread[] t = new RunThread4[3]; t[0] = new RunThread4("☆"); t[1] = new RunThread4("★"); t[2] = new RunThread4("○"); t[0].start(); t[0].setPriority(10); // 동기화와 우선순위는 함께 사용하지 않는다 t[1].start(); t[1].setPriority(5); t[2].start(); t[2].setPriority(1); } } //동시성 적용은 됐는데, 처리가 느리가되는게 눈에보이는정도
이게해보고싶었따.. cmd에서도 처리느림 'JAVA(Sol)(정리대기중..언젠가)' 카테고리의 다른 글
210423_7패키지(package) (0) 2021.04.23 210423_6(syncronized 동기화) (0) 2021.04.23 210423_3~4(멀티스레드) (0) 2021.04.23 210423_2(throws,throw) (0) 2021.04.23 210423_1(예외_Exception) (0) 2021.04.23