
가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있음 = 음식점에서 줄서는 행위와 동일
FIFO, LILO 방식으로 스택과는 꺼내는 순서가 반대
Enqueue(인큐): 큐에 데이터를 넣는 기능
Dequeue(디큐): 큐에서 데이터를 꺼내는 기능
queue 라이브러리에는 Queue(), LifoQueue(), PriorityQueue() 제공하고 있음
import queue
data_queue = queue.Queue()
#queue = 라이브러리명
#Queue = Que 클래스
data_queue.put("funcoding")
data_queue.put(1)
#put : Enqueue
#get : Dequeue
data_queue.qsize()
#2
data_queue.get()
#'funcoding'
#get안에는 인자 사용안함, get하면 데이터가 빠져나가기 때문에 큐 사이즈가 줄어듦
import queue
data_queue = queue.LifoQueue()
data_queue.put("funcoding")
data_queue.put(1)
data_queue.get()
#1
import queue
data_queue = queue.PriorityQueue()
data_queue.put((10, "korea"))
data_queue.put((5,1))
data_queue.put((15, "china"))
data_queue.get()
#(5,1) : 우선순위가 가장 높은것부터 뽑음
멀티 태스킹을 위한 프로세스 스케쥴링 방식을 구현하기 위해 많이 사용됨
장단점보다는 큐의 활용 예로 프로세스 스케쥴링 방식을 이해해두는 것이 좋음
queue_list = list()
def enqueue(data):
queue.list.append(data)
def dequeue(data):
data = queue_list[0]
del queue_list[0]
return data