From 6c5f422644d0174359197bcd34c6610c6ce1bb3d Mon Sep 17 00:00:00 2001 From: kamtohung Date: Tue, 9 Jan 2024 11:54:59 +0800 Subject: [PATCH] Optimized code --- .../core/executor/priority/Priority.java | 31 +++++++++++++++++++ .../executor/priority/PriorityCallable.java | 1 + .../priority/PriorityDtpExecutor.java | 12 +++---- .../executor/priority/PriorityFutureTask.java | 1 + .../executor/priority/PriorityRunnable.java | 1 + 5 files changed, 38 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/Priority.java b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/Priority.java index c6d4324a0..ba92c23b8 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/Priority.java +++ b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/Priority.java @@ -19,11 +19,42 @@ /** * Priority related + *

The {@link #getPriority()} is optional and represents a priority value as defined in the + * {@link Priority} interface. Lower values have higher priority. The default value is + * {@code Priority.LOWEST_PRECEDENCE}, indicating the lowest priority (losing to any + * other specified priority value). * * @author KamTo Hung + * @since 1.1.7 */ public interface Priority { + /** + * Useful constant for the highest precedence value. + * + * @see java.lang.Integer#MIN_VALUE + */ + int HIGHEST_PRECEDENCE = Integer.MIN_VALUE; + + /** + * Useful constant for the lowest precedence value. + * + * @see java.lang.Integer#MAX_VALUE + */ + int LOWEST_PRECEDENCE = Integer.MAX_VALUE; + + /** + * Get the priority value of this object. + *

Higher values are interpreted as lower priority. As a consequence, + * the object with the lowest value has the highest priority (somewhat + * analogous to Servlet {@code load-on-startup} values). + *

Same priority values will result in arbitrary sort positions for the + * affected objects. + * + * @return the priority value + * @see #HIGHEST_PRECEDENCE + * @see #LOWEST_PRECEDENCE + */ int getPriority(); } diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityCallable.java b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityCallable.java index 05a96d7c0..703f5a188 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityCallable.java +++ b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityCallable.java @@ -25,6 +25,7 @@ * PriorityCallable related * * @author KamTo Hung + * @since 1.1.7 */ public class PriorityCallable implements Priority, Callable { diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityDtpExecutor.java b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityDtpExecutor.java index 750cbf08d..3f664779c 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityDtpExecutor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityDtpExecutor.java @@ -35,15 +35,11 @@ * PriorityDtpExecutor related, extending DtpExecutor, implements priority feature * * @author KamTo Hung + * @since 1.1.7 */ @Slf4j public class PriorityDtpExecutor extends DtpExecutor { - /** - * The default priority. - */ - private static final int DEFAULT_PRIORITY = 0; - public PriorityDtpExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, @@ -133,7 +129,7 @@ public void execute(Runnable command, int priority) { @Override public Future submit(Runnable task) { - return super.submit(PriorityRunnable.of(task, DEFAULT_PRIORITY)); + return super.submit(PriorityRunnable.of(task, Priority.LOWEST_PRECEDENCE)); } public Future submit(Runnable task, int priority) { @@ -142,7 +138,7 @@ public Future submit(Runnable task, int priority) { @Override public Future submit(Runnable task, T result) { - return super.submit(PriorityRunnable.of(task, DEFAULT_PRIORITY), result); + return super.submit(PriorityRunnable.of(task, Priority.LOWEST_PRECEDENCE), result); } public Future submit(Runnable task, T result, int priority) { @@ -151,7 +147,7 @@ public Future submit(Runnable task, T result, int priority) { @Override public Future submit(Callable task) { - return super.submit(PriorityCallable.of(task, DEFAULT_PRIORITY)); + return super.submit(PriorityCallable.of(task, Priority.LOWEST_PRECEDENCE)); } public Future submit(Callable task, int priority) { diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityFutureTask.java b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityFutureTask.java index 6ca7e0a35..523451839 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityFutureTask.java +++ b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityFutureTask.java @@ -24,6 +24,7 @@ * PriorityFutureTask related * * @author KamTo Hung + * @since 1.1.7 */ public class PriorityFutureTask extends FutureTask implements Priority { diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityRunnable.java b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityRunnable.java index 5682d0f3e..75a6817b1 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityRunnable.java +++ b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityRunnable.java @@ -23,6 +23,7 @@ * PriorityRunnable related * * @author KamTo Hung + * @since 1.1.7 */ public class PriorityRunnable implements Priority, Runnable {