From 301115d5e96b56cd093eee3fcff2d60a15184162 Mon Sep 17 00:00:00 2001
From: hjg <hjg@123.com>
Date: 星期一, 05 二月 2024 14:28:29 +0800
Subject: [PATCH] 明晟装车记录
---
JavaSource/com/mandi/fendan/util/ThreadPoolUtil.java | 64 +++++++++++++++++++++-----------
1 files changed, 42 insertions(+), 22 deletions(-)
diff --git a/JavaSource/com/mandi/fendan/util/ThreadPoolUtil.java b/JavaSource/com/mandi/fendan/util/ThreadPoolUtil.java
index 43f01ff..4008200 100644
--- a/JavaSource/com/mandi/fendan/util/ThreadPoolUtil.java
+++ b/JavaSource/com/mandi/fendan/util/ThreadPoolUtil.java
@@ -1,7 +1,7 @@
package com.mandi.fendan.util;
import javax.validation.constraints.NotNull;
-import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@@ -27,25 +27,27 @@
//瀛樻椿鏃堕棿
private long keepAliveTime = 1;
private TimeUnit unit = TimeUnit.HOURS;
- private ThreadPoolExecutor executor;
+// private ThreadPoolExecutor executor;
+ ScheduledThreadPoolExecutor executor;
private ThreadPoolUtil() {
//缁檆orePoolSize璧嬪�硷細褰撳墠璁惧鍙敤澶勭悊鍣ㄦ牳蹇冩暟*2 + 1,鑳藉璁ヽpu鐨勬晥鐜囧緱鍒版渶澶х▼搴︽墽琛岋紙鏈夌爺绌惰璇佺殑锛�
corePoolSize = Runtime.getRuntime().availableProcessors() * 2 + 1;
maxPoolSize = corePoolSize;
- executor = new ThreadPoolExecutor(
- //褰撴煇涓牳蹇冧换鍔℃墽琛屽畬姣曪紝浼氫緷娆′粠缂撳啿闃熷垪涓彇鍑虹瓑寰呬换鍔�
- corePoolSize,
- // 鐒跺悗new LinkedBlockingQueue(),鐒跺悗maximumPoolSize,浣嗘槸瀹冪殑鏁伴噺鏄寘鍚簡corePoolSize鐨�
- maxPoolSize,
- //琛ㄧず鐨勬槸maximumPoolSize褰撲腑绛夊緟浠诲姟鐨勫瓨娲绘椂闂�
- keepAliveTime,
- unit,
- //缂撳啿闃熷垪锛岀敤浜庡瓨鏀剧瓑寰呬换鍔★紝Linked鐨勫厛杩涘厛鍑�
- new LinkedBlockingQueue(),
- new DefaultThreadFactory(Thread.NORM_PRIORITY, "thread-pool-"),
- new ThreadPoolExecutor.AbortPolicy()
- );
+// executor = new ThreadPoolExecutor(
+// //褰撴煇涓牳蹇冧换鍔℃墽琛屽畬姣曪紝浼氫緷娆′粠缂撳啿闃熷垪涓彇鍑虹瓑寰呬换鍔�
+// corePoolSize,
+// // 鐒跺悗new LinkedBlockingQueue(),鐒跺悗maximumPoolSize,浣嗘槸瀹冪殑鏁伴噺鏄寘鍚簡corePoolSize鐨�
+// maxPoolSize,
+// //琛ㄧず鐨勬槸maximumPoolSize褰撲腑绛夊緟浠诲姟鐨勫瓨娲绘椂闂�
+// keepAliveTime,
+// unit,
+// //缂撳啿闃熷垪锛岀敤浜庡瓨鏀剧瓑寰呬换鍔★紝Linked鐨勫厛杩涘厛鍑�
+// new LinkedBlockingQueue(),
+// new DefaultThreadFactory(Thread.NORM_PRIORITY, "thread-pool-"),
+// new ThreadPoolExecutor.AbortPolicy()
+// );
+ executor = new ScheduledThreadPoolExecutor(corePoolSize);
}
public static ThreadPoolUtil getInstance() {
@@ -65,18 +67,36 @@
* @param runnable
*/
public void execute(Runnable runnable) {
+ checkNull();
+ if (runnable != null) {
+ executor.execute(runnable);
+ }
+ }
+
+ void checkNull() {
if (executor == null) {
- executor = new ThreadPoolExecutor(
- corePoolSize,
- maxPoolSize,
- keepAliveTime,
- TimeUnit.SECONDS,
- new LinkedBlockingQueue(),
+// executor = new ThreadPoolExecutor(
+// corePoolSize,
+// maxPoolSize,
+// keepAliveTime,
+// TimeUnit.SECONDS,
+// new LinkedBlockingQueue(),
+// new DefaultThreadFactory(Thread.NORM_PRIORITY, "thread-pool-"),
+// new ThreadPoolExecutor.AbortPolicy());
+ executor = new ScheduledThreadPoolExecutor(corePoolSize,
new DefaultThreadFactory(Thread.NORM_PRIORITY, "thread-pool-"),
new ThreadPoolExecutor.AbortPolicy());
}
+ }
+ /**
+ *
+ * @param runnable
+ * @param delay 寤惰繜鎵ц锛屽崟浣嶆绉�
+ */
+ public void execute(Runnable runnable,long delay) {
+ checkNull();
if (runnable != null) {
- executor.execute(runnable);
+ executor.schedule(runnable, delay, TimeUnit.MILLISECONDS);
}
}
--
Gitblit v1.9.3