동기화와 Queue
안녕하세요. 강의를 듣던 중 동기화랑 Queue 가 밀접한 관련이 있다라는 말씀과 그 예시가 잘 이해가지 않아 질문을 남깁니다.
은행 예시에서 손님(=처리해야 할 일)을 순서대로 Queue 에 넣고 은행원들(=처리주체, Thread) 이 하나씩 그 일을 처리해 나가는 부분까지는 이해를 했습니다.
앞선 강의 중 동기화 부분에서 "공유되는 자원을 여러 Thread 가 동시에 접근할 때 그 교통정리를 하는 작업"이 "동기화" 라고 이해했습니다.
은행 예시에서는 Queue 를 이용해 스케쥴링을 한 건 맞지만 동기화와는 다소 거리가 멀어보이는데 어떤 포인트에서 해당 사례가 동기화와 연관이 있는지 설명해주시면 감사드리겠습니다.
답변 1
0
큐를 이용할 때 여러 스레드가 동시에 큐에서 정보를 넣거나 빼면 경우에 따라 (사실 매우 높은 확율로) 자료구조가 손상됩니다. 가령 스레드 4개가 동시에 큐에서 정보를 꺼내려 할 경우 정보 요청부터 꺼내는 일련의 과정 중 다른 스레드가 끼어들면 큐 자체가 손상 될 수 있습니다. 그런 이유로 한 스레드가 큐에서 데이터를 요청하고 꺼내는 과정 동안 나머지 스레드는 큐에 접근 할 수 없도록 교통정리를 해줘야 합니다.
이와 관련된 더 자세한 내용은 프로그래밍을 공부하게 되면 직접 경험 할 수 있습니다. 참고하시기 바랍니다. 😄
자료구조 공부 언어
0
75
1
시간복잡도 계산 시 1회 연산당 연산량은 왜 고려하지 않는 건가요?
1
146
2
2:37초 질문입니다.
0
102
2
HashSet과 HashMap 메소드의 시간 복잡도에 대해 여쭤봅니다.
0
227
1
맵(Map) 시간복잡도 질문
0
155
2
DB 분리 관련 질문 드립니다.
0
355
2
로또번호 7개 셔플 자료구조 설명에서 설명에 대한 질문
0
184
1
비선형 자료구조
0
307
1
[질문은 아니고 해결법&코드 공유] deque로 풀어봤어요!
0
304
1
2-A 2178) tie(y,x)=q.front(); q,pop(); ??
0
493
1
Linked list의 장점
1
647
1
c++ 자료구조 문제 질문
0
155
0
영속성 컨텍스트에 대해 질문이 있습니다.
2
250
1
유니티클라에서 패킷을 계속 보내지 않고 lockstep이나 추측항법으로 동기화를 할 수 있을까요?
0
596
1
자료구조 수열의 n번째 항을 구하는 재귀알고리즘 작성
0
385
0
리스트를 만드는 방법
0
274
1
동기화 질문입니다
0
430
2
Queue 자료구조 사용시 시간초과 문제
1
389
1
오름차순 정렬 시
0
320
1
초보주의: 어셈블리어로 길이 제한 없는 문자열을 표현할 수 있는 법이 뭐가 있을까요
0
180
0
JPA/Spring 동기화 문제와 관련하여 문의드립니다.
0
650
1
Level Order Of BinaryTree 질문드립니다.
1
230
4





