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