인프런 커뮤니티 질문&답변
flush에 대한 질문입니다
작성
·
294
6
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요 flush 쪽에서 의문이 생겨서 이렇게 글 남겨봅니다..!

강의에서는 Push 안에 bool flush = false를 이용하는데
따로 flush를 더 사용안하고 위 이미지처럼 그냥 _flush 만 이용하면 안되는 이유가 따로 있을까요..?
강의에서는 lock때문에 접근을 못해서 단계적으로 하기 위함이라고 하셨는데 이해가 잘 안갑니다..
답변 1
7
Rookiss
지식공유자
멀티쓰레드 관점에서 생각해보시면 됩니다.
처음으로 들어온 쓰레드가 처리도 담당하기를 원하는데,
_flush = true를 해버리면, _flush는 힙 메모리에 올라간 변수라서
모든 쓰레드가 동일하게 사용하게 됩니다.
즉 모든 쓰레드들이 if (_flush) 조건에 걸려 Flush()를 하게 되겠죠.
반면 스택에 위치한 bool flush 는 딱 실행중인 쓰레드만 볼 수 있는 데이터라서
우리가 원하는 [한명만 실행하는] 사양을 구현할 수 있게 됩니다.





