线程主类
public class UserThread implements Runnable { WhActivatyReserveService whActivatyReserveService; Memberservice memberservice; String token =""; public UserThread(String token, Memberservice memberservice) { this.token = token; this.memberservice= memberservice; } @Override public void run() { //主业务 } }调用类
// 每一个线程分批跑多少 int userThreadPage = 1000; //查询用户数据 List<member> listUserEntity = memberService.list(new LambdaQueryWrapper<>()); List<List<member>> splitUserList = DXUtil.splitList(listUserEntity, userThreadPage); int threadSaze = splitUserList.size(); System.out.println("创建线程数"+threadSaze); //循环创建线程 for (int i = 0; i<threadSaze; i++) { List<WhActivatyReserve>list = splitUserList.get(i); // 3.创建线程并执行任务 new Thread(new UserThread(token,memberService)).start(); }工具类
/** * 类似与分页的数据处理工具类 * @author: wangsong * QQ/WX: 1720696548 * @create: 2019-04-14 20:27 */ public class DXUtil { static public <T> List<List<T>> splitList(List<T>list, int pageSize) { int listSize = list.size(); int page = (listSize + (pageSize - 1)) / pageSize; List<List<T>>listArray = new ArrayList<List<T>>(); for (int i = 0; i<page; i++) { List<T>subList = new ArrayList<T>(); for (int j = 0; j<listSize; j++) { int pageIndex = ((j + 1) + (pageSize - 1)) / pageSize; if (pageIndex == (i + 1)) { subList.add(list.get(j)); } if ((j + 1) == ((j + 1) * pageSize)) { break; } } listArray.add(subList); } return listArray; } }