상세 컨텐츠

본문 제목

[Thread] ThreadGroup 예제 : Group 미지정

Java

by kwanghyup 2020. 6. 15. 20:04

본문

Thread가 속할 그룹 네임을 지정하지 않으면 

생성된 스레드는 자신을 생성한 스레드의 그룹에 속한다. 

 

ThreadAA.java

현재 스레드가 속한 그룹 이름을 출력한다. 

public class ThreadAA extends Thread{
    @Override
    public void run() {
        System.out.print("스레드AA : ");
        System.out.println(Thread.currentThread().getThreadGroup());
    }
}

 ThreadBB.java

1. 현재 스레드가 속한 그룹 이름을 출력한다. 

2. ThreadCC를 생성하고 동작한다. 

public class ThreadBB extends Thread{
    // CC스레드를 생성 및 동작
    @Override
    public void run() {
        System.out.print("스레드BB : ");
        System.out.println(Thread.currentThread().getThreadGroup());
        ThreadCC cc = new ThreadCC();
        cc.start();
    }
}

 

Main

1. ThreadAA와 ThreadBB를 동작한다. 

2. 현재 스레드가 속한 그룹 이름을 출력한다. 

public class ThreadGroupExample {
    public static void main(String[] args) {
        ThreadAA aa = new ThreadAA();
        ThreadBB bb = new ThreadBB();
        aa.start();
        bb.start();
        System.out.println("main스레드 : " + Thread.currentThread().getThreadGroup()); // 스레드가 속한 그룹을 얻는다.
    }
}

 

Main 스레드는 main  그룹에 속해 있다. 

TheadAA와 ThreaBB는

Main 스레드가 생성하였고 그룹을 지정하지 않았다. 

따라서 TheadAA와 ThreaBB는 

자신을 생성해준 Main 스레드가 속한 그룹, 즉 main 그룹에 속한다.

 

ThreadBB는 ThreadCC를 생성하면서 그룹을 지정하지 않았다.

따라서  ThreadCC는 ThreadBB가 속한 그룹 즉, main 그룹에 속한다.

관련글 더보기

댓글 영역