Module org.apache.lucene.core
Package org.apache.lucene.index
Class ConcurrentApproximatePriorityQueue<T>
- java.lang.Object
-
- org.apache.lucene.index.ConcurrentApproximatePriorityQueue<T>
-
final class ConcurrentApproximatePriorityQueue<T> extends java.lang.Object
Concurrent version ofApproximatePriorityQueue
, which trades a bit more of ordering for better concurrency by maintaining multiple subApproximatePriorityQueue
s that are locked independently. The number of subs is computed dynamically based on hardware concurrency.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) int
concurrency
(package private) java.util.concurrent.locks.Lock[]
locks
(package private) static int
MAX_CONCURRENCY
(package private) static int
MIN_CONCURRENCY
(package private) ApproximatePriorityQueue<T>[]
queues
-
Constructor Summary
Constructors Constructor Description ConcurrentApproximatePriorityQueue()
ConcurrentApproximatePriorityQueue(int concurrency)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
add(T entry, long weight)
(package private) boolean
contains(java.lang.Object o)
private static int
getConcurrency()
(package private) T
poll(java.util.function.Predicate<T> predicate)
(package private) boolean
remove(java.lang.Object o)
-
-
-
Field Detail
-
MIN_CONCURRENCY
static final int MIN_CONCURRENCY
- See Also:
- Constant Field Values
-
MAX_CONCURRENCY
static final int MAX_CONCURRENCY
- See Also:
- Constant Field Values
-
concurrency
final int concurrency
-
locks
final java.util.concurrent.locks.Lock[] locks
-
queues
final ApproximatePriorityQueue<T>[] queues
-
-