mirror of
https://gitee.com/jzsw-it/yexuejc-base.git
synced 2025-09-28 08:23:20 +08:00
1.2.0 增加异步线程处理工具
This commit is contained in:
@@ -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, "/"));
|
||||
}
|
||||
|
||||
/**
|
||||
* 开启线程执行<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();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user