728x90
PriorityQueue는 우선순위 큐를 구현한 파이썬의 클래스입니다. 우선순위 큐는 요소들을 저장하고 관리하는 자료구조로, 각 요소는 우선순위를 가지며 우선순위에 따라 처리되는 순서가 결정됩니다. PriorityQueue는 일반적으로 힙(heap) 자료구조를 사용하여 구현되며, 우선순위가 가장 높은 요소가 가장 먼저 처리됩니다.
PriorityQueue 클래스는 queue 모듈에 정의되어 있습니다. 사용하기 위해서는 queue 모듈을 import해야 합니다:
from queue import PriorityQueue
PriorityQueue 객체를 생성하고 요소를 추가하려면 다음과 같이 사용합니다:
pq = PriorityQueue()
pq.put(item)
여기서 item은 추가할 요소이며, 요소는 (우선순위, 값)의 형태로 전달됩니다. 예를 들어, (3, 'A')와 (1, 'B')를 추가한다면 'B'가 'A'보다 먼저 처리됩니다.
요소를 가져오려면 get() 메소드를 사용합니다:
item = pq.get()
get() 메소드는 우선순위가 가장 높은 요소를 반환하고, 해당 요소는 큐에서 제거됩니다.
PriorityQueue는 멀티스레드 환경에서 동기화된 작업을 지원하기 때문에 스레드 간의 안전한 데이터 공유에 유용하게 사용될 수 있습니다.
참고로, PriorityQueue의 내부 구현은 힙(heap) 자료구조에 의존하므로, 우선순위 큐의 요소들은 힙의 특성을 따라 정렬됩니다.