|
|
|
@ -43,6 +43,7 @@ public enum BlockingQueueTypeEnum {
|
|
|
|
|
* {@link java.util.concurrent.ArrayBlockingQueue}
|
|
|
|
|
*/
|
|
|
|
|
ARRAY_BLOCKING_QUEUE(1, "ArrayBlockingQueue") {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
<T> BlockingQueue<T> of(Integer capacity) {
|
|
|
|
|
return new ArrayBlockingQueue<>(capacity);
|
|
|
|
@ -53,6 +54,7 @@ public enum BlockingQueueTypeEnum {
|
|
|
|
|
* {@link java.util.concurrent.LinkedBlockingQueue}
|
|
|
|
|
*/
|
|
|
|
|
LINKED_BLOCKING_QUEUE(2, "LinkedBlockingQueue") {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
<T> BlockingQueue<T> of(Integer capacity) {
|
|
|
|
|
return new LinkedBlockingQueue<>(capacity);
|
|
|
|
@ -63,6 +65,7 @@ public enum BlockingQueueTypeEnum {
|
|
|
|
|
* {@link java.util.concurrent.LinkedBlockingDeque}
|
|
|
|
|
*/
|
|
|
|
|
LINKED_BLOCKING_DEQUE(3, "LinkedBlockingDeque") {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
<T> BlockingQueue<T> of() {
|
|
|
|
|
return new LinkedBlockingDeque<>();
|
|
|
|
@ -73,6 +76,7 @@ public enum BlockingQueueTypeEnum {
|
|
|
|
|
* {@link java.util.concurrent.SynchronousQueue}
|
|
|
|
|
*/
|
|
|
|
|
SYNCHRONOUS_QUEUE(4, "SynchronousQueue") {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
<T> BlockingQueue<T> of() {
|
|
|
|
|
return new SynchronousQueue<>();
|
|
|
|
@ -83,6 +87,7 @@ public enum BlockingQueueTypeEnum {
|
|
|
|
|
* {@link java.util.concurrent.LinkedTransferQueue}
|
|
|
|
|
*/
|
|
|
|
|
LINKED_TRANSFER_QUEUE(5, "LinkedTransferQueue") {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
<T> BlockingQueue<T> of() {
|
|
|
|
|
return new LinkedTransferQueue<>();
|
|
|
|
@ -93,6 +98,7 @@ public enum BlockingQueueTypeEnum {
|
|
|
|
|
* {@link java.util.concurrent.PriorityBlockingQueue}
|
|
|
|
|
*/
|
|
|
|
|
PRIORITY_BLOCKING_QUEUE(6, "PriorityBlockingQueue") {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
<T> BlockingQueue<T> of(Integer capacity) {
|
|
|
|
|
return new PriorityBlockingQueue<>(capacity);
|
|
|
|
@ -103,6 +109,7 @@ public enum BlockingQueueTypeEnum {
|
|
|
|
|
* {@link ResizableCapacityLinkedBlockingQueue}
|
|
|
|
|
*/
|
|
|
|
|
RESIZABLE_LINKED_BLOCKING_QUEUE(9, "ResizableCapacityLinkedBlockingQueue") {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
<T> BlockingQueue<T> of(Integer capacity) {
|
|
|
|
|
return new ResizableCapacityLinkedBlockingQueue<>(capacity);
|
|
|
|
@ -197,7 +204,6 @@ public enum BlockingQueueTypeEnum {
|
|
|
|
|
ServiceLoaderRegistry.register(CustomBlockingQueue.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static <T> BlockingQueue<T> customOrDefaultQueue(Integer capacity, Predicate<CustomBlockingQueue> predicate) {
|
|
|
|
|
Collection<CustomBlockingQueue> customBlockingQueues = ServiceLoaderRegistry
|
|
|
|
|
.getSingletonServiceInstances(CustomBlockingQueue.class);
|
|
|
|
|