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(); + } }