[Python] PriorityQueue

golony·2021년 11월 2일
0

알고리즘

목록 보기
1/5

PriorityQueue

  • 선입선출이 아닌 우선순위가 가장 높은 값 부터 Pop 하는 큐
  • Heap으로 만들수 있다.
  • 사용전 다음 패키지에서 해당 class를 import
from queue import PriorityQueue

주요 API

put

큐에 값을 enqueue 하는 함수
(우선순위, 객체) 형태의 튜플 형태로 주로 사용

pq = PriorityQueue()
a.put((1, 'value'))

get

get(block=True, timeout=None) # 기본값

큐에서 우선순위가 가장 높은(=숫자가 가장 낮은) 객체를 dequeue
이때, 튜플형 데이터의 첫 원소를 기준으로 사용!
block=True: 사용 가능해질때 까지 (== 다른 쓰레드에서 put 할때 까지) 대기
timeout=N: 해당 시간동안 대기 (None의 경우 무한정 대기)

pq = PriorityQueue()
a.get() # 비어있기 때문에 Block 상태

그 외

  • q.empty()

응용

pq = PriorityQueue()

pq.queue 		# 큐 자체에 접근
pq.queue[0]		# 요소 제거 없이 get() 대상이 되는 값에 접근 가능
profile
더 나은 세상으로 나아가는 서비스를 만들고 싶습니다.

0개의 댓글