//返回的消息对象
List<HistoryMessage> result = Collections.synchronizedList(new ArrayList<>());
//使用线程数
ForkJoinPool forkJoinPool = new ForkJoinPool(4);
//使用任务队列去执行
ForkJoinTask<List<HistoryMessage>> task = forkJoinPool.submit(() ->{
//读取文件
String jsonFile = FileUtils.readJsonFile(fileName);
JSONArray jsonArray = JSONArray.parseArray(jsonFile);
jsonArray.parallelStream().forEach(array ->{
HistoryMessage message = setHistoryMessage(array);
result.add(message);
});
},result);
try{
List<HistoryMessage> list = task.get();
int totalRecord = list.size();
}catch (Exception e){
logger.error("获取消息失败:"+e.getMessage());
e.printStackTrace();
}
使用ForkJoin去处理一个大json读取的操作
最新推荐文章于 2025-02-18 17:52:54 发布