JAVA3_03_쓰레드의 우선순위, 쓰레드그룹

charl hi·2021년 9월 23일
0

JAVA3

목록 보기
3/9

링크텍스트

쓰레드의 우선순위

  • 작업의 중요도에 따라 쓰레드의 우선순위를 다르게 하여 특정 쓰레드가 더많은 작업시간을 갖게 할 수 있다.
  • JVM : 1 ~ 10
  • WinOS : 32단계
  • 무엇이 더 우선했으면 좋겠다는 희망사항을 OS스케줄러에 전달할 뿐, 우리의 희망사항대로 충실히 수행하진 않는다. 참고수준 ㅎㅎ
//쓰레드의 우선순위를 지정한 값으로 변경한다.
void setPriority(int newPriority)
//쓰레드의 우선순위를 반환한다.
int getPriority()
//최대우선순위
public static final int MAX_PRIORITY = 10
//최소우선순위
public static final int MIN_PRIORITY = 1
//보통우선순위.. 디폴트 우선순위
public static final int NORM_PRIORITY = 5

그렇다고 실제로 이렇게 돌아가는 건 아니고!


메소드 사용

  • 쓰레드참조변수.setPriority(int)
  • 쓰레드참조변수.getPriority()


ex13_06


public class Ex13_06 {

	public static void main(String[] args) {
		Thread06_1 t1 = new Thread06_1();
		Thread06_2 t2 = new Thread06_2();
		
//		t1.setPriority(5);	//기본. 설정안해도 5가 기본
		t2.setPriority(7);
		
		System.out.println("Priority of t1(-) : "+t1.getPriority());
		System.out.println("Priority of t2(|) : "+t2.getPriority());
		t1.start();
		t2.start();

	}

}

class Thread06_1 extends Thread{
	public void run() {
		for(int i=0; i<300; i++) {
			System.out.print("-");
			for(int x=0; x<10000000; x++);	//시간지연용 for문
		}
	}
}

class Thread06_2 extends Thread{
	public void run() {
		for(int i=0; i<300; i++) {
			System.out.print("|");
			for(int x=0; x<10000000; x++);	//시간지연용 for문
		}
	}
}

Priority of t1(-) : 5
Priority of t2(|) : 7
-|-|---------------------------------------------------------------------------------------------||-||||||||||||||||||||||||||||----------------------------------------------------------------------------------------------------------------||||||||||||||||--------------------------------------------------------------------------------------------||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  • ✨이렇듯 우선순위가 높다고 먼저 끝나진 않는다.
  • 먼저 끝날 확률이 높아지는 것일 뿐...ㅎㅎ


쓰레드 그룹

  • 서로 관련된 쓰레드를 그룹으로 묶어서 다루기 위한 것
  • 모든 쓰레드는 반드시 하나의 쓰레드 그룹에 포함되어 있어야 한다.
  • 쓰레드 그룹을 지정하지 않고 생성한 쓰레드는 ✨✨main쓰레드 그룹에 속한다.
  • 자신을 생성한 쓰레드(부모 쓰레드)의 그룹과 우선순위를 상속받는다.

Thread 생성자

  1. Thread()



Thread와 ThreadGroup 메소드



ThreadGroup 메소드

링크텍스트




Ref

0개의 댓글