From e00164f85b9b0daef998fb0b02f2aa2b01c56f0e Mon Sep 17 00:00:00 2001 From: yexuejc <940526mf> Date: Fri, 19 Oct 2018 11:40:19 +0800 Subject: [PATCH] =?UTF-8?q?1.2.0=20=E5=A2=9E=E5=8A=A0=E5=BC=82=E6=AD=A5?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E5=A4=84=E7=90=86=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- UPDATE.md | 12 ++++++ pom.xml | 9 +++- .../java/com/yexuejc/base/util/SysUtil.java | 41 +++++++++++++++++++ 4 files changed, 62 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b85f6dd..bc39205 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ ### 使用 ->yexuejc.base.version=1.1.9 +>yexuejc.base.version=1.2.0 pom.xml ``` diff --git a/UPDATE.md b/UPDATE.md index eae03f6..e92436b 100644 --- a/UPDATE.md +++ b/UPDATE.md @@ -1,6 +1,18 @@ yexuejc-base 更新记录 ------------------ +#### version :1.2.0 +**time:2018-10-19 11:38:20**
+**branch:** master
+**update:**
+>1. 增加异步线程处理工具 +```$java +SysUtil.threadRun(() -> { + //异步执行代码块 +} +``` +# + #### version :1.1.9 **time:2018-9-23 11:57:36**
**branch:** master
diff --git a/pom.xml b/pom.xml index 15a43f6..7cf1c16 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.yexuejc.base yexuejc-base - 1.1.9 + 1.2.0 ${project.artifactId} @@ -21,6 +21,7 @@ 1.10 2.6 1.60 + 20.0 @@ -55,6 +56,12 @@ bcprov-jdk15on ${bcprov-jdk15on.version} + + + com.google.guava + guava + ${guava.version} + diff --git a/src/main/java/com/yexuejc/base/util/SysUtil.java b/src/main/java/com/yexuejc/base/util/SysUtil.java index 0131308..5094146 100644 --- a/src/main/java/com/yexuejc/base/util/SysUtil.java +++ b/src/main/java/com/yexuejc/base/util/SysUtil.java @@ -1,6 +1,9 @@ package com.yexuejc.base.util; +import com.google.common.util.concurrent.ThreadFactoryBuilder; + import java.net.URL; +import java.util.concurrent.*; /** * 系统工具类 @@ -35,4 +38,42 @@ public class SysUtil { return clazz.getClass().getResource(StrUtil.setStr(filePath, "/")); } + /** + * 开启线程执行

+ * 异步处理代码 + * + * @param threadRun + */ + public static void threadRun(ThreadRun threadRun) { + threadRun(null, threadRun); + } + + /** + * 异步处理代码 + * + * @param poolName 开启线程名称 + * @param threadRun + */ + public static void threadRun(String poolName, ThreadRun threadRun) { + if (StrUtil.isEmpty(poolName)) { + poolName = "java-pool-%d"; + } + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat(poolName).build(); + ExecutorService singleThreadPool = new ThreadPoolExecutor(1, 1, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + + singleThreadPool.execute(() -> { + threadRun.execute(); + }); + singleThreadPool.shutdown(); + } + + /** + * 异步执行代码块 + */ + public interface ThreadRun { + void execute(); + } }