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

insu2012.lee님의 프로필 이미지
insu2012.lee

작성한 질문수

자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]

Thread run 메쏘드 안에서, 새로운 Thread 생성

작성

·

226

0

Thread 의 run 함수 안에서, 새로운 Thread 를 생성 할 경우가 있을까요?

만약에, 그 경우가 있다면, Thread stack 과 Heap 영역의 구조가 어떤 식으로

만들어질 지, 궁금합니다.

즉, 기존 Thread Stack 에서, 동일하게, 새로운 Thread 가 Heap 에 할당되고, 새로운 Thread Stack 영역이 만들어지나요?

답변 1

0

정수원님의 프로필 이미지
정수원
지식공유자

어떻게 보면 main thread 안에서 우리는 새로운 스레드를 생성하고 있습니다.

스레드 안에서 새로운 스레드를 생성하는 것은 비동기적인 작업을 위임하고자 할 때 선택할 수 있는 부분입니다.

당연히 stack 은 새롭게 생성되고 Heap 은 공동으로 유지하지만 스레드마다 정보는 다르게 가지고 있습니다.

톰캣도 메인 스레드 안에서 생성되는 스레드이며 우리는 그 스레드 안에서 또 다른 스레드를 생성하고 있습니다.

한가지 기억할 점은 우리가 코드 상으로 스레드 안에서 새로운 스레드를 생성하는 것이 중첩되게 보일 수는 있으나 OS 관점에서 보면 커널 수준의 여러 스레드가 만들어진다는 점입니다.

insu2012.lee님의 프로필 이미지
insu2012.lee
질문자

한가지 기억할 점은 우리가 코드 상으로 스레드 안에서 새로운 스레드를 생성하는 것이 중첩되게 보일 수는 있으나 OS 관점에서 보면 커널 수준의 여러 스레드가 만들어진다는 점입니다.

=> 이 점이 좋은 답변 같습니다. 감사합니다.

insu2012.lee님의 프로필 이미지
insu2012.lee

작성한 질문수

질문하기