
Thread::isJoined는 쓰레드가 종료되었는지 여부를 확인하는 메서드입니다.
main 쓰레드가 다른 쓰레드의 join() 메서드를 호출하면, 쓰레드는 종료될 때까지 기다립니다.
join() 메서드가 완전히 종료된 후에만 Thread::isJoined이 true를 반환합니다.
이러한 동작을 이해하기 위해서는 쓰레드의 생명주기와 join() 메서드의 동작을 이해하는 것이 중요합니다.
1. 쓰레드가 생성되면, 기본적으로는 종료되지 않은 상태입니다.
2. 쓰레드가 run() 메서드를 호출하면, 실행 상태가 됩니다.
3. 쓰레드가 종료되면, 실행 상태가 종료됩니다.
4. main 쓰레드가 다른 쓰레드의 join() 메서드를 호출하면, 쓰레드는 종료될 때까지 기다립니다.
이러한 생명주기와 join() 메서드의 동작을 이해하면, Thread::isJoined의 동작을 정확하게 이해할 수 있습니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
java
public class ThreadExample {
public static void main(String[] args) {
Thread thread = new Thread(() -> {
System.out.println("쓰레드가 실행 중입니다.");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
System.out.println("쓰레드가 종료되었습니다.");
});
thread.start();
System.out.println("main 쓰레드가 join() 메서드를 호출합니다.");
try {
thread.join();
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
System.out.println("main 쓰레드가 종료되었습니다.");
}
}
이 코드를 실행하면, 다음과 같은 결과가 나타납니다.
#hostingforum.kr
main 쓰레드가 join() 메서드를 호출합니다.
쓰레드가 실행 중입니다.
쓰레드가 종료되었습니다.
main 쓰레드가 종료되었습니다.
이러한 결과를 통해, main 쓰레드가 다른 쓰레드의 join() 메서드를 호출하면, 쓰레드는 종료될 때까지 기다립니다. 또한, join() 메서드가 완전히 종료된 후에만 Thread::isJoined이 true를 반환합니다.
2025-08-01 15:12