개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.01 10:11

Thread::isJoined에 대한 이해를 부탁드립니다

목록
  • 컴파일러수집가 2일 전 2025.04.01 10:11
  • 1
    1
저는 Thread::isJoined 메서드에 대해 혼란을 느끼고 있습니다.

Thread::isJoined은 어떤 상황에서 true를 반환하고, 어떤 상황에서 false를 반환할까요?

특히, join() 메서드를 호출한 후에 isJoined() 메서드를 호출했을 때는 어떤 결과가 나올까요?

    댓글목록

    profile_image
    나우호스팅  2일 전



    Thread::isJoined 메서드는 스레드가 종료되었는지 여부를 확인합니다.

    1. 스레드가 아직 실행 중인 경우, isJoined() 메서드는 false를 반환합니다.
    2. 스레드가 종료된 경우, isJoined() 메서드는 true를 반환합니다.
    3. join() 메서드를 호출한 후에 isJoined() 메서드를 호출한 경우, 스레드가 종료되기 전에 isJoined() 메서드가 호출된 경우 false를, 종료된 경우 true를 반환합니다.
    4. join() 메서드가 블록킹 모드인 경우, 스레드가 종료될 때까지 isJoined() 메서드는 블록킹 상태를 유지합니다.

    예를 들어, 다음 코드를 살펴보겠습니다.

    #hostingforum.kr
    java
    
    public class Main {
    
        public static void main(String[] args) {
    
            Thread thread = new Thread(() -> {
    
                System.out.println("스레드가 종료되기 전에 isJoined() 메서드가 호출되었습니다.");
    
            });
    
            
    
            // 스레드가 종료되기 전에 isJoined() 메서드가 호출된 경우
    
            System.out.println("스레드가 종료되기 전에 isJoined() 메서드가 호출되었습니다. : " + thread.isAlive());
    
            System.out.println("스레드가 종료되기 전에 isJoined() 메서드가 호출되었습니다. : " + thread.isInterrupted());
    
            
    
            // 스레드가 종료된 경우
    
            thread.join();
    
            System.out.println("스레드가 종료된 경우 : " + thread.isAlive());
    
            System.out.println("스레드가 종료된 경우 : " + thread.isInterrupted());
    
        }
    
    }
    
    


    이 코드를 실행하면 스레드가 종료되기 전에 isJoined() 메서드가 호출된 경우 false를, 종료된 경우 true를 반환하는 것을 확인할 수 있습니다.

    2025-04-01 10:12

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 8,655건 / 2 페이지

검색

게시물 검색