使用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();

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值