java 线程

import org.springframework.util.CollectionUtils;

List<List<User>> lists = new ArrayList<>();

//查询业务数据

List<User> userList = dao.queryData();

try {

lists = averageAssign(userList, 10000);

if(!CollectionUtils.isEmpty(lists)) {

lists.foreach(o -> {

new Thread(() -> {

try {

taskCommon(o);

} catch (Exception e) {

}

}).start();

});

}

} catch(Exception e) {

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

}finally {

lists.clear();

}

public synchronized void taskCommon(List<User> list) {

//业务处理

}

import org.springframework.util.CollectionUtils;

import java.util.List;

import java.util.stream.Collectors;

import java.util.stream.Stream;

public static<T> List<List<T>> averageAssign(List<T> source, int size) {

if(!CollectionUtils.isEmpty(source) && size > 0) {

int num = source.size() % size == 0 ? source.size() / size : (source.size() / size)+1;

return Stream.iterate(0, n -> n + 1).limit(num).parallel().map(a -> source.parallelStream().skip(a * size).limit(size).collect(Collectors.toList())).filter(b -> !b.isEmpty()).collect(Collectors.toList());

}

return null;

}

相关推荐
愤怒的代码12 分钟前
简析 Kotlin 内联函数:与inline相关的关键字
android·java·kotlin
用针戳左手中指指头12 分钟前
Spring源码篇(十三)循环依赖
java·后端·spring·循环依赖·相互依赖
To Be Clean Coder13 分钟前
【Spring源码】getBean源码实战(五)——MergedBean
java·后端·spring
SimonKing30 分钟前
局域网内跨平台传文件,没有比LocalSend更方便的了
java·后端·程序员
超级小龙虾31 分钟前
VS Code 本身没有内置像 IntelliJ IDEA 那样的完整书签(Bookmarks)
java
万物挽挽42 分钟前
单例模式的优点和缺点分别是什么?
java
Katherine_lin42 分钟前
基于Spring Boot的抽奖系统测试报告
java·spring boot·后端
C_lea43 分钟前
Java多线程学习(一)
java·学习
萧曵 丶1 小时前
Java 线程池优化
java·开发语言
什么都不会的Tristan1 小时前
SpringDataRedis
java·spring boot·spring