상세 컨텐츠

본문 제목

[Python 자료구조] 입력 제한 없는 큐 (simplequeue) - 1

자료구조

by donggyu1998 2022. 2. 6. 18:33

본문

반응형

💡 큐 설명 : [Python 자료구조] 큐 (Queue) :: 코딩 연구소 (tistory.com)

 

💡 큐 모듈 기능

 

클래스 내용
queue.Queue(maxsize) 선입선출(FIFO First-In, First-Out)큐 객체를 생성
queue.LifoQueue(maxsize) 일반적으로 스택(Stack)이라 불리는 후입선출(LIFO Last-In, First-Out)큐 객체를 생성
queue.PriorityQueue(maxsize) 우선순위 큐 객체를 생성
입력되는 아이템의 형식은 (순위, 아이템)의 튜플로 입력되며,
우선순위는 숫자가 작을수록 높은 순위를 갖는다.

 

 

메서드 내용
qsize() 큐 객체에 입력된 아이템의 개수를 반환
put(item[, block[, timeout]]) 큐 객체에 아이템을 입력한다.
put_nowait(item) 블로킹(blocking)없이 큐 객체에 아이템을 입력한다.
큐 객체가 꽉 차 있는 경우에는 queue.Full예외 발생
get([block[, timeout]]) 생성된 큐 객체 특성에 맞추어, 아이템 1개를 반환
get_nowait() 블로킹(blocking)없이 큐 객체에 들어있는 아이템을 반환
큐 객체에 아이템이 없는 경우에는 queue.Empty 예외 발생

 

아래의 예외는 큐객체의 크기와 관련하여 발생할수 있는 예외이다.

예외 내용
queue.Empty 큐 객체에 아이템이 없는 경우 발생
queue.Full 큐 객체에 아이템이 꽉 찬 경우에 발생

queue 모듈은 데이터 추가 시 put(), 삭제 시 get() 함수를 호출한다.

큐에 등록된 아이템 개수는 qsize() 를 호출하여 확인할 수 있다.

 

💡 코드 설명

 

import queue

queue = queue.Queue()
queue.put("queue")
queue.put(3)

queue_size = queue.qsize()
print ("queue_size : {}".format(queue_size))

put 을 이용하여 queue 에 데이터를 추가한다.

[ queue, 3 ] 라는 값을 추가했기 때문에 qsize 는 2가 된다. 

 

import queue

queue = queue.Queue()
queue.put("queue")
queue.put(3)

queue_size = queue.qsize()
print ("queue_size : {}".format(queue_size))

queue_data = queue.get()
print (queue_list)

queue_data = queue.get()
print (queue_list)

queue get() 함수 호출 시 먼저 들어간 queue 를 꺼내고, 두번 째 get() 함수 호출 시 두 번째로 들어간 3 을 꺼낸다. 

 

반응형

관련글 더보기