1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
@RequestMapping ("/getStudentInfoWithCompletableFuture" )public Object getStudentInfoWithCompletableFuture () { long start = System.currentTimeMillis(); Map<String, Object> resultMap = new HashMap<>(10 ); try { CompletableFuture<Object> completableFutureStudentName = CompletableFuture.supplyAsync(() -> { try { return studentService.getStudentName(); } catch (InterruptedException e) { e.printStackTrace(); } return null ; }); CompletableFuture<Object> completableFutureSutdentAge = CompletableFuture.supplyAsync(() -> { try { return studentService.getSutdentAge(); } catch (InterruptedException e) { e.printStackTrace(); } return null ; }); CompletableFuture<Object> completableFutureFamilyInfo = CompletableFuture.supplyAsync(() -> { try { return studentService.getSutdentFamilyInfo(); } catch (InterruptedException e) { e.printStackTrace(); } return null ; }); CompletableFuture.allOf(completableFutureStudentName, completableFutureSutdentAge, completableFutureFamilyInfo).join(); resultMap.put("studentName" , completableFutureStudentName.get()); resultMap.put("studentAge" , completableFutureSutdentAge.get()); resultMap.put("studentFamilyInfo" , completableFutureFamilyInfo.get()); } catch (Exception e) { resultMap.put("errMsg" , e.getMessage()); } resultMap.put("total cost" , System.currentTimeMillis() - start); return resultMap; }
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏