스레드 그룹을 명시적으로 선언하는 방법도 있습니다. ThreadGroup 생성자를 이용해서 객체를 생성하는 방식입니다. 이 때 생성자에서 ThreadGroup의 이름만 파라미터로 줄 수 있고, 부모 ThreadGroup과 이름까지 함께 파라미터로 전달이 가능합니다.
ThreadGroup tg = new ThreadGroup(String name);
ThreadGroup tg = new ThreadGroup(ThreadGroup parent, String name);
두 번째 생성자처럼 스레드 그룹 생성 시에 부모(parent) 스레드 그룹을 별도로 지정하지 않을 경우, 현재 스레드가 속한 그룹의 하위 그룹으로 생성됩니다. 만일 main 스레드가 ThreadGroup(String name)을 이용해서 새로운 스레드 그룹을 생성하면, main 스레드 그룹의 하위 스레드 그룹이 됩니다.
이렇게 스레드 그룹을 생성했다면, 이 그룹에 스레드를 포함시키는 작업이 필요합니다. 스레드를 특정 그룹에 포함하려면 Thread 객체를 생성할 때 생성자 파라미터로 스레드 그룹을 전달하면 됩니다. 스레드 그룹을 파라미터로 갖는 Thread 생성자는 아래와 같습니다.
Thread t = new Thread(ThreadGroup group, Runnable target);
Thread t = new Thread(ThreadGroup group, Runnable target, String name);
Thread t = new Thread(ThreadGroup group, Runnable target, String name, long stackSize);
Thread t = new Thread(ThreadGroup group, String name);
Runnable 타입의 target은 당연하지만 Runnable 구현 객체를 의미하고, String 타입의 name은 스레드의 이름을 의미합니다. 또 long 타입의 stackSize는 JVM이 이 스레드에 할당할 stack의 크기를 의미합니다.
'Programming > JAVA' 카테고리의 다른 글
멀티 스레드(8) - 스레드 그룹 5 (2) | 2025.01.02 |
---|---|
멀티 스레드(8) - 스레드 그룹 4 (0) | 2024.12.30 |
멀티 스레드(8) - 스레드 그룹 2 (1) | 2024.12.23 |
멀티 스레드(8) - 스레드 그룹 1 (0) | 2024.12.18 |
멀티 스레드(7) - 데몬 스레드 2 (0) | 2024.12.17 |