Java Future类多线程

属于1.8特性,允许多线程接收数据解决数据量大线程阻塞问题
同时可以用Callable来实现多线程,相对于thread和runable可以返回数据

  ExecutorService executorService = Executors.newFixedThreadPool(5);
        //用户信息
        Callable<Appuser> userInfoCallable = () -> appuserService.getById(userId);
        //关注数量
        Callable<Long> careCountCallable = () -> appUserCareService.count(new QueryWrapper<AppUserCare>().eq("appuser_id", userId));
        //解锁数量
        Callable<Long> blockCallable = () -> dynamicBlockRecordService.count(new QueryWrapper<DynamicBlockRecord>().eq("appuser_id", userId));
        //订阅数量(粉丝团和专属会员)
        Callable<Long> subscribeCallable = () -> appUserFunService.getFunUserVipCount(userId);
        //点赞收藏
        Callable<Long> likeCountCallable = () -> appUserLikeService.getLikeCollectCount(userId);

        FutureTask<Appuser> userInfoTask = new FutureTask<>(userInfoCallable);
        FutureTask<Long> careCountTask = new FutureTask<>(careCountCallable);
        FutureTask<Long> blockCountTask = new FutureTask<>(blockCallable);
        FutureTask<Long> subscribeTask = new FutureTask<>(subscribeCallable);
        FutureTask<Long> likeCountTask = new FutureTask<>(likeCountCallable);

        executorService.submit(userInfoTask);
        executorService.submit(careCountTask);
        executorService.submit(blockCountTask);
        executorService.submit(subscribeTask);
        executorService.submit(likeCountTask);

        Map<String, Object> entity = new HashMap<>();
        entity.put("userInfo", new Appuser());
        entity.put("likeCount", 0);
        entity.put("careCount", 0);
        entity.put("blockCount", 0);
        entity.put("subscribeCount", 0);
        try {
            entity.put("userInfo", userInfoTask.get());
            entity.put("likeCount", likeCountTask.get());
            entity.put("careCount", careCountTask.get());
            entity.put("blockCount", blockCountTask.get());
            entity.put("subscribeCount", subscribeTask.get());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            executorService.shutdown();
        }

参考学习:https://blog.csdn.net/m0_37202351/article/details/82763303
参考学习:https://blog.csdn.net/u014209205/article/details/80598209
参考学习:https://blog.csdn.net/weixin_42606135/article/details/81282736

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值