线程异步处理
Posted IT的鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程异步处理相关的知识,希望对你有一定的参考价值。
ExecutorService executorService = Executors.newSingleThreadExecutor();
executorService.execute(() -> {
try {
ObjectUtils.ifPresent(planList, list -> {
for (RFCPlanEntity entity : list) {
String status = entity.getStatus();
List<RFCUserEntity> implementerList = entity.getImplementer();
ObjectUtils.ifTrue("Implement".equals(status), implementerList, implementer -> {
rfcScoreService.queryAspAndSave(implementer);
});
}
});
} catch (ApplicationException e) {
e.printStackTrace();
}
});
@Configuration
public class SchedulingConfiguration implements SchedulingConfigurer {
public static int count = 0;
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
//默认是一个线程
taskRegistrar.setScheduler(Executors.newScheduledThreadPool(10));
// taskRegistrar.setScheduler(new ScheduledThreadPoolExecutor(Runtime.getRuntime().availableProcessors(),
// new ThreadFactory() {
// @Override
// public Thread newThread(Runnable r) {
// return new Thread(r, "my-schedule-" + ++count);
// }
// }));
}
}
以上是关于线程异步处理的主要内容,如果未能解决你的问题,请参考以下文章
线程代替epll实现协程的原理(yield调用next时的函数使用其他线程进行处理,不影响主线程继续运行,next异步处理线程处理后使用send传回处理结果)