1.创建类
@Configuration
public class ThreadPoolConfig {
@Bean
public ExecutorService getThreadPool(){
return Executors.newFixedThreadPool(20);
}
}
2.
Future<String> updateFuture = executorService.submit(new updateCallable(personBindPowerTemp,this,this.loginUserHolder.getLoginUser().getUsername()));
class updateCallable implements Callable<String>{
private PersonBindPower personBindPower;
private IPersonBindPowerService iPersonBindPowerService;
private String username;
public updateCallable(PersonBindPower personBindPower, IPersonBindPowerService iPersonBindPowerService,String username) {
this.personBindPower = personBindPower;
this.iPersonBindPowerService = iPersonBindPowerService;
this.username = username;
}
@Override
public String call() throws Exception {
iPersonBindPowerService.updateThread(personBindPower,username);
return "批量更新门禁线程执行结束"+personBindPower.getPersonId()+personBindPower.getDeviceId();
}
}
注意的是:开启的多线程是session是null,获取不到登录信息。用到登录信息,在用之前登录
参考:https://blog.youkuaiyun.com/f641385712/article/details/80832636
本文介绍如何在Spring框架中配置多线程池并实现异步任务处理,包括创建固定大小的线程池和使用Future接收异步任务返回结果的具体实现方式。同时,讨论了在多线程环境下保持会话状态的方法。
508





