• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

flush에 대한 질문입니다

22.02.11 12:52 작성 조회수 159

5

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
안녕하세요 flush 쪽에서 의문이 생겨서 이렇게 글 남겨봅니다..!
 
강의에서는 Push 안에 bool flush = false를 이용하는데
따로 flush를 더 사용안하고 위 이미지처럼 그냥 _flush 만 이용하면 안되는 이유가 따로 있을까요..?
 
강의에서는 lock때문에 접근을 못해서 단계적으로 하기 위함이라고 하셨는데 이해가 잘 안갑니다..
 

답변 1

답변을 작성해보세요.

6

멀티쓰레드 관점에서 생각해보시면 됩니다.

처음으로 들어온 쓰레드가 처리도 담당하기를 원하는데,
_flush = true를 해버리면, _flush는 힙 메모리에 올라간 변수라서
모든 쓰레드가 동일하게 사용하게 됩니다.
즉 모든 쓰레드들이 if (_flush) 조건에 걸려 Flush()를 하게 되겠죠.

반면 스택에 위치한 bool flush 는 딱 실행중인 쓰레드만 볼 수 있는 데이터라서
우리가 원하는 [한명만 실행하는] 사양을 구현할 수 있게 됩니다.