인프런 커뮤니티 질문&답변

도토리님의 프로필 이미지
도토리

작성한 질문수

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

스레드 시작1

main에서 start 호출 시

작성

·

176

0

public class HelloThreadMain {

    public static void main(String[] args) {

        System.out.println(Thread.currentThread().getName() + ": main() start");

        HelloThread helloThread = new HelloThread();
        System.out.println(Thread.currentThread().getName() + ": start() 호출 전");
        helloThread.start();
        System.out.println(Thread.currentThread().getName() + ": start() 호출 후");

        System.out.println(Thread.currentThread().getName() + ": main() end");
    }
}

개인적으로 궁금한 부분이 있는데요. main에서 start를 호출할 때 main 스택 프레임 위에 start 스택 프레임이 쌓이나요? 쌓이고 바로 삭제되는 건가요?

답변 1

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 도토리님

main 스레드 관점에서 보면, main 스택 프레임 위에 start 스택 프레임이 쌓이고 start 스택 프레임 안에서 별도의 스레드를 만들게 됩니다. 이후에 start 스택 프레임이 제거되고 다시 main 스택 프레임을 수행합니다.

감사합니다.

도토리님의 프로필 이미지
도토리

작성한 질문수

질문하기