1.2.0 增加异步线程处理工具

This commit is contained in:
yexuejc 2018-10-19 11:40:19 +08:00
parent 5ecb759db9
commit e00164f85b
4 changed files with 62 additions and 2 deletions

View File

@ -16,7 +16,7 @@
### 使用 ### 使用
>yexuejc.base.version=1.1.9 >yexuejc.base.version=1.2.0
pom.xml pom.xml
``` ```

View File

@ -1,6 +1,18 @@
yexuejc-base 更新记录 yexuejc-base 更新记录
------------------ ------------------
#### version 1.2.0
**time2018-10-19 11:38:20** <br/>
**branch** master <br/>
**update** <br/>
>1. 增加异步线程处理工具
```$java
SysUtil.threadRun(() -> {
//异步执行代码块
}
```
#
#### version 1.1.9 #### version 1.1.9
**time2018-9-23 11:57:36** <br/> **time2018-9-23 11:57:36** <br/>
**branch** master <br/> **branch** master <br/>

View File

@ -6,7 +6,7 @@
<groupId>com.yexuejc.base</groupId> <groupId>com.yexuejc.base</groupId>
<artifactId>yexuejc-base</artifactId> <artifactId>yexuejc-base</artifactId>
<version>1.1.9</version> <version>1.2.0</version>
<name>${project.artifactId}</name> <name>${project.artifactId}</name>
@ -21,6 +21,7 @@
<commons-codec.version>1.10</commons-codec.version> <commons-codec.version>1.10</commons-codec.version>
<commons-io.version>2.6</commons-io.version> <commons-io.version>2.6</commons-io.version>
<bcprov-jdk15on.version>1.60</bcprov-jdk15on.version> <bcprov-jdk15on.version>1.60</bcprov-jdk15on.version>
<guava.version>20.0</guava.version>
</properties> </properties>
<dependencies> <dependencies>
@ -55,6 +56,12 @@
<artifactId>bcprov-jdk15on</artifactId> <artifactId>bcprov-jdk15on</artifactId>
<version>${bcprov-jdk15on.version}</version> <version>${bcprov-jdk15on.version}</version>
</dependency> </dependency>
<!--com.yexuejc.base.util.SysUtil.threadRun 异步处理代码-->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
</dependencies> </dependencies>

View File

@ -1,6 +1,9 @@
package com.yexuejc.base.util; package com.yexuejc.base.util;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import java.net.URL; import java.net.URL;
import java.util.concurrent.*;
/** /**
* 系统工具类 * 系统工具类
@ -35,4 +38,42 @@ public class SysUtil {
return clazz.getClass().getResource(StrUtil.setStr(filePath, "/")); return clazz.getClass().getResource(StrUtil.setStr(filePath, "/"));
} }
/**
* 开启线程执行<p>
* 异步处理代码
*
* @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<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
singleThreadPool.execute(() -> {
threadRun.execute();
});
singleThreadPool.shutdown();
}
/**
* 异步执行代码块
*/
public interface ThreadRun {
void execute();
}
} }