请有人建议如何在此场景中使用Callable和Future
我希望能够为来自不同用户的商品提交多个出价。
我正在开始一个新线程,当中标价值回来时,我想返回该值。如何生成一个新线程并在我有一个值后立即返回一个值。将Future.get()作为下一行等待返回值还是可以返回空值?
public AuctionBid getWinningBid(String itemCode){
Callable<AuctionBid> winningBidCallable = () -> store.getWinningBid(itemCode);
Future<AuctionBid> future = executorService.submit(winningBidCallable);
return Future.get(); // can this return empty object
}
答案 0 :(得分:-1)
Future.get()
是一个阻塞调用,所以它将等到Future有任何值(假设没有异常)。
因此,在您的情况下,Future.get()
可以满足您的要求。