如何确认Future一旦返回值就返回值

时间:2016-07-21 12:39:20

标签: java multithreading

请有人建议如何在此场景中使用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
}

1 个答案:

答案 0 :(得分:-1)

Future.get()是一个阻塞调用,所以它将等到Future有任何值(假设没有异常)。 因此,在您的情况下,Future.get()可以满足您的要求。