-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
flush에 대한 질문입니다
22.02.11 12:52 작성 조회수 159
5
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요 flush 쪽에서 의문이 생겨서 이렇게 글 남겨봅니다..!
강의에서는 Push 안에 bool flush = false를 이용하는데
따로 flush를 더 사용안하고 위 이미지처럼 그냥 _flush 만 이용하면 안되는 이유가 따로 있을까요..?
강의에서는 lock때문에 접근을 못해서 단계적으로 하기 위함이라고 하셨는데 이해가 잘 안갑니다..
답변을 작성해보세요.
6
Rookiss
지식공유자2022.02.11
멀티쓰레드 관점에서 생각해보시면 됩니다.
처음으로 들어온 쓰레드가 처리도 담당하기를 원하는데,
_flush = true를 해버리면, _flush는 힙 메모리에 올라간 변수라서
모든 쓰레드가 동일하게 사용하게 됩니다.
즉 모든 쓰레드들이 if (_flush) 조건에 걸려 Flush()를 하게 되겠죠.
반면 스택에 위치한 bool flush 는 딱 실행중인 쓰레드만 볼 수 있는 데이터라서
우리가 원하는 [한명만 실행하는] 사양을 구현할 수 있게 됩니다.
답변 1