인프런 커뮤니티 질문&답변
2.스레드 생성과 실행 - 17P 그림 문의
작성
·
20
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
안녕하세요, 강의 잘 수강하고 있습니다.
17P에 시간의 흐름으로 분석
이라는 그림이 있습니다.
그런데, 마치 스레드 생성 이후에,
start()를 통해 실행을 하는 것 처럼 그림이 그려져 있습니다.
'start() 호출 전 3. 호출 후' 라는 프린트가 중간에 끼어있으니 더 그런것 같은데.
제가 알기로 start() 명령어와 동시에 실제 스택이 생성되고 실행되는 것으로 알고 있습니다.
그렇다면 '1 start() 호출 전' 이 main 박스 맨 위로 가고, 스레드 생성이 호출 뒤로 가야 하는거 아닌가 싶습니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 드림보이즈-DREAMBOYS님.
스레드의 생성과 실행 방식에 대한 궁금증을 해결해 보기 위해 관련 내용을 설명드리겠습니다.
start() 메서드 호출과 스레드의 실제 실행 시점은 다를 수 있습니다. 즉, start() 메서드를 호출하면 스레드가 실행 대기 상태로 넘어가지만, 스케줄러에 의해 실제 실행되기까지는 약간의 지연이 있을 수 있습니다. 그래서 수업 자료의 그림에서는 start() 호출 전후에 명확하게 구분된 상태로 표시한 것 같습니다.
start() 메서드는 스레드 실행을 요청하도록 설계된 것이고, 스레드의 실제 실행은 운영체제의 스케줄러에 의해 비동기적으로 관리됩니다. 그래서 코드 상에서는 start() 호출 직후에 다른 코드 부분이 먼저 실행될 수도 있습니다. 이 때문에 그림은 start()를 호출하고 실행 대기 상태로 넘어갔다는 점을 강조하기 위한 것일 수 있습니다.
더 명확하게 이해하기 위해 다음의 포럼 답변을 확인하시면 좋겠습니다:
- main에서 start 호출 시 - start() 메서드 호출과 스레드의 실행에 대한 관점에서의 설명을 볼 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





