JAVA/포스팅

자바 쓰레드 join 프레임웍

짜집퍼박사(짜박) 2023. 11. 22. 00:49

자바에서 join 메서드는 쓰레드 간의 실행 순서를 조절하기 위해 사용됩니다. join 메서드를 사용하면 하나의 쓰레드가 다른 쓰레드의 실행을 완료할 때까지 기다릴 수 있습니다.

 

1. join() 메서드

이 메서드는 특정 쓰레드의 실행이 완료될 때까지 현재 쓰레드를 일시 정지시킵니다. 즉, 다른 쓰레드의 작업이 완료될 때까지 대기합니다.

Thread thread1 = new Thread(() -> {
    // 쓰레드1의 작업
});

Thread thread2 = new Thread(() -> {
    // 쓰레드2의 작업
});

thread1.start();
thread2.start();

try {
    thread1.join(); // 쓰레드1의 실행 완료를 기다림
    thread2.join(); // 쓰레드2의 실행 완료를 기다림
} catch (InterruptedException e) {
    e.printStackTrace();
}

이 예제에서 thread1.join()은 메인 쓰레드가 thread1의 실행을 기다리도록 하고, thread2.join()은 메인 쓰레드가 thread2의 실행을 기다리도록 합니다.

 

2. join(long millis) 메서드

이 메서드는 특정 쓰레드의 실행이 완료되거나 지정된 시간이 경과할 때까지 현재 쓰레드를 일시 정지시킵니다.

Thread thread1 = new Thread(() -> {
    // 쓰레드1의 작업
});

Thread thread2 = new Thread(() -> {
    // 쓰레드2의 작업
});

thread1.start();
thread2.start();

try {
    thread1.join(2000); // 쓰레드1의 실행 완료를 최대 2초까지 기다림
    thread2.join(3000); // 쓰레드2의 실행 완료를 최대 3초까지 기다림
} catch (InterruptedException e) {
    e.printStackTrace();
}

이 예제에서 thread1.join(2000)은 메인 쓰레드가 thread1의 실행을 최대 2초까지 기다리도록 하고, thread2.join(3000)은 메인 쓰레드가 thread2의 실행을 최대 3초까지 기다리도록 합니다.

이렇게 join 메서드를 사용하면 쓰레드 간의 실행 순서를 조절할 수 있으며, 특히 메인 쓰레드가 다른 쓰레드의 작업이 완료될 때까지 기다려야 하는 상황에서 유용합니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 람다식  (0) 2023.11.22
자바 쓰레드 fork 프레임웍  (0) 2023.11.22
자바 쓰레드 volatile  (0) 2023.11.22
자바 쓰레드 Condition을 이용한 동기화  (0) 2023.11.22
자바 쓰레드 Lock을 이용한 동기화  (0) 2023.11.22