작성
·
228
0
Thread 의 run 함수 안에서, 새로운 Thread 를 생성 할 경우가 있을까요?
만약에, 그 경우가 있다면, Thread stack 과 Heap 영역의 구조가 어떤 식으로
만들어질 지, 궁금합니다.
즉, 기존 Thread Stack 에서, 동일하게, 새로운 Thread 가 Heap 에 할당되고, 새로운 Thread Stack 영역이 만들어지나요?
답변 1
0
네
어떻게 보면 main thread 안에서 우리는 새로운 스레드를 생성하고 있습니다.
스레드 안에서 새로운 스레드를 생성하는 것은 비동기적인 작업을 위임하고자 할 때 선택할 수 있는 부분입니다.
당연히 stack 은 새롭게 생성되고 Heap 은 공동으로 유지하지만 스레드마다 정보는 다르게 가지고 있습니다.
톰캣도 메인 스레드 안에서 생성되는 스레드이며 우리는 그 스레드 안에서 또 다른 스레드를 생성하고 있습니다.
한가지 기억할 점은 우리가 코드 상으로 스레드 안에서 새로운 스레드를 생성하는 것이 중첩되게 보일 수는 있으나 OS 관점에서 보면 커널 수준의 여러 스레드가 만들어진다는 점입니다.
한가지 기억할 점은 우리가 코드 상으로 스레드 안에서 새로운 스레드를 생성하는 것이 중첩되게 보일 수는 있으나 OS 관점에서 보면 커널 수준의 여러 스레드가 만들어진다는 점입니다.
=> 이 점이 좋은 답변 같습니다. 감사합니다.