1. Queue 구조
2. 알아둘 용어
3. 파이썬 queue 라이브러리
- 파이썬 Queue 라이브러리: Queue(), LifoQueue(), PriorityQueue() 제공
- 프로그램을 작성할 때 프로그램에 따라 적합한 자료 구조를 사용
* Queue() : 가장 일반적인 큐 자료 구조
- LifoQueue() : 나중에 입력된 데이터가 먼저 출력된느 구조 (=스택구조)
- PriorityQueue() : 데이터마다 우선순위를 넣어서, 우선순위가 높은 순으로 데이터 출력
- 일반적인 큐 외에 다양한 정책이 적용된 큐들이 있음
3-1. Queue() : FIFO
import queue
data_queue = queue.Queue()
data_queue.put(1)
data_queue.put(2)
data_queue.qsize()
data_queue.get()
3-2. LifoQueue() : LIFO
import queue
data_queue = queue.LifoQueue()
data_queue.put(1)
data_queue.put(2)
data_queue.qsize()
data_queue.get()
3-3. PriorityQueue()
import queue
data_queue = queue.PriorityQueue()
# (우선순위 값, 데이터)
# 우선순위 숫자가 작을 수록 우선순위가 큼!
data_queue.put(10, '1')
data_queue.put(20, '2')
data_queue.qsize()
data_queue.get()
4. 어디에 queue가 많이 쓰일까?
- 멀티 태스킹을 위한 프로세스 스케줄링 방식을 구현하기 위해 많이 사용됨 (운영체제 참조)
- 큐의 경우, 장/단점 보단는 (특별히 언급된느 장단점이 없음), 큐의 활용 예로 프로세스 스케줄링 방식을 함께 이해해두는 것이 좋음
참고자료