강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

W-Hand님의 프로필 이미지
W-Hand

작성한 질문수

넓고 얕게 외워서 컴공 전공자 되기

선형 자료구조 Stack과 Queue

동기화와 Queue

해결된 질문

작성

·

44

0

안녕하세요. 강의를 듣던 중 동기화랑 Queue 가 밀접한 관련이 있다라는 말씀과 그 예시가 잘 이해가지 않아 질문을 남깁니다.

은행 예시에서 손님(=처리해야 할 일)을 순서대로 Queue 에 넣고 은행원들(=처리주체, Thread) 이 하나씩 그 일을 처리해 나가는 부분까지는 이해를 했습니다.


앞선 강의 중 동기화 부분에서 "공유되는 자원을 여러 Thread 가 동시에 접근할 때 그 교통정리를 하는 작업"이 "동기화" 라고 이해했습니다.
은행 예시에서는 Queue 를 이용해 스케쥴링을 한 건 맞지만 동기화와는 다소 거리가 멀어보이는데 어떤 포인트에서 해당 사례가 동기화와 연관이 있는지 설명해주시면 감사드리겠습니다.

답변 1

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

큐를 이용할 때 여러 스레드가 동시에 큐에서 정보를 넣거나 빼면 경우에 따라 (사실 매우 높은 확율로) 자료구조가 손상됩니다. 가령 스레드 4개가 동시에 큐에서 정보를 꺼내려 할 경우 정보 요청부터 꺼내는 일련의 과정 중 다른 스레드가 끼어들면 큐 자체가 손상 될 수 있습니다. 그런 이유로 한 스레드가 큐에서 데이터를 요청하고 꺼내는 과정 동안 나머지 스레드는 큐에 접근 할 수 없도록 교통정리를 해줘야 합니다.

이와 관련된 더 자세한 내용은 프로그래밍을 공부하게 되면 직접 경험 할 수 있습니다. 참고하시기 바랍니다. 😄

W-Hand님의 프로필 이미지
W-Hand

작성한 질문수

질문하기