Module org.apache.lucene.core
Package org.apache.lucene.index
Class ConcurrentApproximatePriorityQueue<T>
java.lang.Object
org.apache.lucene.index.ConcurrentApproximatePriorityQueue<T>
Concurrent version of
ApproximatePriorityQueue
, which trades a bit more of ordering for
better concurrency by maintaining multiple sub ApproximatePriorityQueue
s that are locked
independently. The number of subs is computed dynamically based on hardware concurrency.-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final int
(package private) final Lock[]
(package private) static final int
(package private) static final int
(package private) final ApproximatePriorityQueue<T>[]
-
Constructor Summary
Constructors -
Method Summary
-
Field Details
-
MIN_CONCURRENCY
static final int MIN_CONCURRENCY- See Also:
-
MAX_CONCURRENCY
static final int MAX_CONCURRENCY- See Also:
-
concurrency
final int concurrency -
locks
-
queues
-
-
Constructor Details
-
ConcurrentApproximatePriorityQueue
ConcurrentApproximatePriorityQueue() -
ConcurrentApproximatePriorityQueue
ConcurrentApproximatePriorityQueue(int concurrency)
-
-
Method Details
-
getConcurrency
private static final int getConcurrency() -
add
-
poll
-
contains
-
remove
-