테스트를 위해 원형 큐의 크기를 10으로 했었지요. 코드 5-11을 보면 데이터를 여덟 개 삽입한 후 다섯 개는 지우고 다시 몇 개를 더 삽입하여 일부러 원형 큐의 크기를 벗어나게 삽입했습니다. 마지막으로 내부에 있는 동적 배열의 실제 모습은 어떤지 출력해 보았습니다. 실행하면 다음 결과 가 출력됩니다.
0 1 2 3 4 5 6 7 8 9 10 11 12 13
10 11 12 13 4 5 6 7 8 9
실행 결과의 두 번째 라인이 원형 큐의 내부에 있는 동적 배열의 실제 모습입니다.
Tip 큐는 어디에 쓰나요?
큐의 쓰임새는 스택보다 더 다양합니다. OS는 태스크 큐를 이용하여 스케줄링을 합니다. 컴퓨터는 동시에 여러 프로그램을 실행할 수 있는데 실제로 작업을 수행하는 CPU 개수는 제한적입니다. 이때 OS는 여러 프로그램에서 작업을 요청받아 이를 큐에 담은 후 정해진 알고리즘에 따라 큐에서 태스크(작업)를 꺼내 실행합니다. 이렇게 실행할 작업 순서를 정하는 것을 스케줄링이라고 합니다. 웹 개발을 한 적이 있다면 aws의 SQS를 많이 알고 있을 것입니다. 이것도 이름에 Queue가 들어 있군요. 대표적인 생산자 -소비자 패턴으로, 15장에서 좀 더 자세히 알아보겠습니다.