jdk1.8異步
jdk1.8異步://異步,無(wú)返回?cái)?shù)據(jù)
CompletableFuture.runAsync(()-> {
logger.info("xxx-> xxx.");
// TODO
}).exceptionally(e->{
logger.error("###xxx->xxx failed:", e);
return null;
}).join();CompletableFuture getTask=CompletableFuture.supplyAsync(()->{
return xxxService.getXXX(po.getId());
}).thenCombine(CompletableFuture.supplyAsync(()->{
return xxxxxxService.getXXXX(po.getId());
}),(first,second)->toVotes(first,second)).exceptionally(e->{
logger.error("",e);
return null;
});
list= (List<XxxPO>) getTask.get(RedisConst.REDIS_TIME_OUT, TimeUnit.SECOND);private CompletableFuture<VO> getXXXId(long id){
CompletableFuture<VO> task=CompletableFuture.supplyAsync(()->{
VO vo=null;
try {
// TODO
return vo;
} catch (TException e) {
logger.error("xxx fail!",e);
}
return vo;
});
return task;
}CompletableFuture<VO> task = this.getXXX(id);infoList.add(task.get(TIME_OUT, TimeUnit.SECONDS));
posted on 2016-08-18 10:52 void 閱讀(415) 評(píng)論(0) 編輯 收藏