- 쓰레드의 우선순위
- 쓰레드 그룹
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; // 보통 우선 순위
public class Ex13_6 {
public static void main(String[] args) {
ThreadEx6_1 th1 = new ThreadEx6_1();
ThreadEx6_2 th2 = new ThreadEx6_2();
th2.setPriority(10);
System.out.println("Priority of th1(-) : "+th1.getPriority());
System.out.println("Priority of th2(|) : "+th2.getPriority());
th1.start();
th2.start();
}
}
class ThreadEx6_1 extends Thread {
@Override
public void run() {
for (int i = 0; i < 300; i++) {
System.out.print("-");
for(int x =0; x <1000000; x++); // 시간지연용 for문
}
}
}
class ThreadEx6_2 extends Thread {
@Override
public void run() {
for (int i = 0; i < 300; i++) {
System.out.print("|");
for(int x =0; x <1000000; x++);
}
}
}
Priority of th1(-) : 5
Priority of th2(|) : 10
-|-|------------------------------|||||||||---|||||||----------------
||||||||||||||||||||------------||||||||||------|||||||||||||||||||||---------
-||||||||||||||||||||-----|||||||||||||||||||||||||||||||||||||||-------------
----||||||||||||||------------------------------------------------------------
----------|||||||||||||||||||||||||||||||||||||||||||||||||-------------------
-------|||||||------------------------------|||------|||||---|||-------|||----
------------||||||||||------------------------|||||||||||--------||||||||||---
------|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
마우스 포인터의 우선순위가 엄청 높다고 한다.
그 이유는 다른 프로그램 때문에 마우스 포인터가 안움직여버리면 사용자가 많이 답답할 수 있기 때문이라고 한다..ㅋ ㅋ
서로 관련된 쓰레드를 그룹으로 묶어서 다루기 위한 것
모든 쓰레드는 반드시 하나의 쓰레드 그룹에 포함되어 있어야 한다.
쓰레드 그룹을 지정하지 않고 생성한 쓰레드는 main 쓰레드 그룹
에 속한다.
아래와 같이 쓰레드 생성자를 통해 그룹을 지정할 수 있다.
Thread(ThreadGroup group, String name)
Thread(ThreadGroup group, Runnable target)
Thread(ThreadGroup group, Runnable target, String name)
Thread(ThreadGroup group, Runnable target, String name, long stackSize)
ThreadGroup getThreadGroup() // 쓰레드 자신이 속한 쓰레드 그룹을 반환한다. (Thread에 있는 메서드)
void uncaughtException(Thread t, Throwable e) // 처리되지 않은 예외에 의해 쓰레드 그룹의 쓰레드가 실행이 종료되었을 때, JVM에 의해 이 메서드가 자동적으로 호출된다. (ThreadGroup에 있는 메서드)