관리 메뉴

프론트엔드 정복하기

큐(queue) 본문

큐(queue)는 기본적으로 FIFO 정책을 갖는다. : First-in-First-out

 

파이썬에서 큐 라이브러리를 제공하는데 이를 쓸 수 있다.

import queue

data_queue = queue.Queue()
data_queue.put('...')       # 큐에 데이터 삽입
data_queue.qsize()          # 큐에 있는 데이터 개수 산출
data_queue.get()            # 큐에 가장 먼저 삽입된 데이터 꺼내기

 

 

LIFO 정책인 큐도 있다. Last-in-First-out

import queue

data_queue = queue.LifoQueue()
data_queue.put('...')       # 큐에 데이터 삽입
data_queue.qsize()          # 큐에 있는 데이터 개수 산출
data_queue.get()            # 큐에 가장 마지막에 삽입된 데이터 꺼내기

 

 

 

PriorityQueue

데이터를 넣을 때마다 우선수위 번호를 같이 넣는다.

따라서 해당 큐에서 데이터를 추출할 때는 가장 우선순위가 높은 데이터부터 추출한다.

import queue

data_queue = queue.PriorityQueue()
data_queue.put((10, 'korea'))       # 큐에 (우선 순위, 데이터)를 튜플 형태로 삽입
data_queue.qsize()          # 큐에 있는 데이터 개수 산출
data_queue.get()            # 큐에서 우선순위가 높은 데이터부터 추출 (우선순위 숫자가 낮은)

 

 

 

** 큐가 어디서 많이 쓰일까?

  멀티 태스킹을 위한 프로세스 스케줄링 방식을 구현하기 위해

 

 

** 큐의 장단점은 특별히 없음

 

 

** 큐 관련 용어

- enQueue : 큐에 데이터 넣기

- deQueue : 큐에서 데이터 꺼내기