其他分享
首页 > 其他分享> > 使用ForkJoin去处理一个大json读取的操作

使用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