🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

락프리 스택 Push 코드 중에서

22.01.04 21:18 작성 조회수 175

0

Node* node = new Node(value);

 

"node 포인터는 스택에 존재해서 멀티스레드여도 문제가 없다" 고 하셨는데,

node 포인터는 스택에 존재하지만, new Node 부분은 계속 힙에서 메모리 할당 받는 거 아닌가요?

그럼 다른 스레드가 접근할 때마다 메모리를 계속 할당 받을텐데, 해제를 안하면 나중엔 결국 문제가 되는 거 아닌지.

제가 배운 내용으론 이해가 잘 안돼서 질문 드립니다!

 

 

답변 1

답변을 작성해보세요.

0

node 포인터는 스택에 존재하지만, new Node 부분은 계속 힙에서 메모리 할당 받는 거 아닌가요?

네 맞습니다.

그럼 다른 스레드가 접근할 때마다 메모리를 계속 할당 받을텐데, 해제를 안하면 나중엔 결국 문제가 되는 거 아닌지.

여기서 말하는건 [메모리 해제] 관련된 문제가 아니라,
다른 쓰레드가 동일한 힙 주소에 접근해서
멋대로 해제하거나 조작할 수 없다는 것입니다.
당연히 그 어느 누군가도 해제를 안 하면 메모리 누수로 인해 언젠간 터지겠죠.

채널톡 아이콘