使用ForkJoin去处理一个大json读取的操作
作者:互联网
//返回的消息对象
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();
}
标签:jsonFile,读取,forkJoinPool,json,result,new,array,ForkJoin,message 来源: https://blog.csdn.net/weixin_45802263/article/details/122289691