Post

Java Thread Join

1. Thread Join

Thread가 종료될 때까지 기다릴 때 Thread.join()을 사용한다.

예를 들어, Thread A는 Thread B에게 어떤 작업을 실행시키고 완료될 때까지 기다려야 할 때가 있다. 이럴 때 join()을 호출하면 A는 B가 종료될 때까지 기다린다.

2. 예제

  • Main
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Main {

    public static void main(String[] args) {

        System.out.println("Main Start");

        ThreadTask threadTask = new ThreadTask();
        Thread thread = new Thread(threadTask);
        thread.start();

        // thread join
        try {
            thread.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("Main End");
    }
}
  • ThreadTask
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class ThreadTask implements Runnable {

    @Override
    public void run() {
        System.out.println("Thread 1");
        thread2();
    }

    public void thread2() {
        System.out.println("Thread 2");
        thread3();
    }

    public void thread3() {
        System.out.println("Thread 3");
    }
}
  • Thread Join 미사용 결과
1
2
3
4
5
Main Start
Main End
Thread 1
Thread 2
Thread 3
  • Thread Join 사용 결과
1
2
3
4
5
Main Start
Thread 1
Thread 2
Thread 3
Main End

[출처 및 참고]

This post is licensed under CC BY 4.0 by the author.