Class: Concurrent::PriorityQueue
- Inherits:
-
MutexPriorityQueue
- Object
- MutexPriorityQueue
- Concurrent::PriorityQueue
- Defined in:
- lib/concurrent/collection/priority_queue.rb,
lib/concurrent/collection/priority_queue.rb
Overview
This implementation is not thread safe and performs no blocking.
A queue collection in which the elements are sorted based on their comparison (spaceship) operator ‘<=>`. Items are added to the queue at a position relative to their priority. On removal the element with the “highest” priority is removed. By default the sort order is from highest to lowest, but a lowest-to-highest sort order can be set on construction.
The API is based on the ‘Queue` class from the Ruby standard library.
The pure Ruby implementation, ‘MutexPriorityQueue` uses a heap algorithm stored in an array. The algorithm is based on the work of Robert Sedgewick and Kevin Wayne.
The JRuby native implementation is a thin wrapper around the standard library ‘java.util.PriorityQueue`.
When running under JRuby the class ‘PriorityQueue` extends `JavaPriorityQueue`. When running under all other interpreters it extends `MutexPriorityQueue`.
Method Summary
Methods inherited from MutexPriorityQueue
#clear, #delete, #empty?, from_list, #include?, #initialize, #length, #peek, #pop, #push
Constructor Details
This class inherits a constructor from Concurrent::MutexPriorityQueue