如何异步实现某个接口或业务?
刚拿到这个需求的话,我的做法肯定是new Thread()或者实现Runnable接口来创建线程,然后执行方法
偶然看到同事的实现方法,感觉高大上
ThreadUtil.execAsync(() -> asyncDataScheduler.scheduler(CharSequenceUtil.EMPTY), Boolean.FALSE);
使用的是Hutool包中的ThreadUtil工具类
需要先引入Hutool依赖:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.5</version>
</dependency>
/**
* Params:
* runnable – 需要执行的方法体
* isDaemon – 是否守护线程。守护线程会在主线程结束后自动结束
* Returns:执行的方法体
*/
方法源码:
public static Runnable execAsync(Runnable runnable, boolean isDaemon) {
Thread thread = new Thread(runnable);
thread.setDaemon(isDaemon);
thread.start();
return runnable;
}