Java多线程学习:Future、Callable

Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四)

    最近在写清结算文件前置的相关代码时,考虑使用多线程机制来提高效率,所以深入了解了一下关于Future和Callable的相关知识。一般我们使用多线程很多是实现Runnable接口,但Runnable接口的run方法是无返回值的。如果我们需要得到线程的返回结果,那么就可以使用Callable接口了。清洁算的第三方文件前置刚好符合这种情况:比如支付宝前置,支付宝的请求是分时间段的,所以一条业务线取文件的时候是发送了多条http请求的。这时使用Future和Callable的多线程方式就能提高效率,我们写下载任务task实现Callable,使用Executor.submit(task)来提交任务,然后使用Future.get 方法来返回任务成功或失败的结果,如果有任务失败了,那么就不进行接下来的操作,所有的下载任务成功了才进行相关的文件合并操作。

    Future和Callable适用于需要得到线程的执行结果的情况.

你可能感兴趣的:(Java多线程学习:Future、Callable)