개발자 Q&A

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

2025.03.14 22:59

Thread::start 관련 질문

  • Dart광 17시간 전 2025.03.14 22:59 새글
  • 3
    1
제가 지금 Java의 Thread 클래스를 공부 중인데, Thread::start() 메서드에 대해 궁금한 점이 있습니다.

Thread::start() 메서드는 Thread 클래스의 주요 메서드 중 하나로, 실행 중인 스레드의 실행을 시작하거나 재개하는 역할을 합니다.

이 메서드는 start() 메서드를 호출하면, 스레드의 run() 메서드가 실행되기 시작하고, 스레드는 독립적으로 실행을 시작합니다.

다만, start() 메서드를 호출하면 스레드의 실행은 바로 시작되지 않고, 스레드의 실행을 위한 준비가 이루어질 때까지 기다립니다.

그런데, 이 준비 시간 동안 스레드의 실행은 일시적으로 중단되며, 스레드의 상태가 NEW에서 RUNNABLE로 전환됩니다.

이러한 준비 시간 동안 스레드의 상태가 RUNNABLE로 전환되는 이유는 무엇이며, 스레드의 실행을 재개하는 시점은 언제인지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  17시간 전



    Java의 Thread 클래스의 start() 메서드는 스레드의 실행을 시작하거나 재개하는 역할을 합니다.

    start() 메서드를 호출하면 스레드의 run() 메서드가 실행되기 시작하고, 스레드는 독립적으로 실행을 시작합니다.

    이 준비 시간 동안 스레드의 상태가 RUNNABLE로 전환되는 이유는 JVM이 스레드의 실행을 위한 자원을 할당하기 때문입니다. JVM은 스레드의 실행을 위한 자원을 할당하기 전에 스레드의 상태를 RUNNABLE로 전환합니다.

    스레드의 실행을 재개하는 시점은 JVM이 스레드의 실행을 위한 자원을 할당했을 때입니다. JVM은 스레드의 실행을 위한 자원을 할당한 후 스레드의 상태를 RUNNABLE에서 RUNNING으로 전환합니다.

    따라서, 스레드의 실행은 JVM이 스레드의 실행을 위한 자원을 할당한 후에 시작됩니다.

    예를 들어, 다음 코드를 실행하면 스레드의 실행은 JVM이 스레드의 실행을 위한 자원을 할당한 후에 시작됩니다.

    #hostingforum.kr
    java
    
    public class ThreadExample {
    
        public static void main(String[] args) {
    
            Thread thread = new Thread(() -> {
    
                System.out.println("스레드 실행");
    
            });
    
            thread.start();
    
        }
    
    }
    
    


    이 코드를 실행하면 스레드의 실행은 JVM이 스레드의 실행을 위한 자원을 할당한 후에 시작됩니다. 스레드의 상태는 NEW에서 RUNNABLE로 전환되고, JVM이 스레드의 실행을 위한 자원을 할당한 후에 스레드의 상태는 RUNNABLE에서 RUNNING으로 전환됩니다.

    2025-03-14 23:00

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

검색

게시물 검색