如何使用Java的Callable和Future获取线程池任务执行结果?
- 内容介绍
- 文章标签
- 相关推荐
本文共计793个文字,预计阅读时间需要4分钟。
在Java中执行线程时,无论是直接继承Thread类还是实现Runnable接口,都无法获取到线程执行的返回结果。若线程执行过程中出现错误,主线程也不会感知到。
在Java的线程执行中,不管是直接继承Thread的方式,还是实现Runnable接口的方式,都不会获取到线程执行的返回结果。这样如果线程在执行过程中出现了错误,那么主线程也不会感知到。即使打印了日志,也不能立即抛出异常。事后查看日志才能发现出现了bug。而且到那时发生问题的代码点距离真正的问题点可能会相差很远。如果在线程池执行的过程中出现了bug能及时地抛出异常,那么这将会是一个很好的实现。解决上述问题的办法是使用Callable接口,其可以获取到线程的返回结果,通过Future的get方法来承接。
本文共计793个文字,预计阅读时间需要4分钟。
在Java中执行线程时,无论是直接继承Thread类还是实现Runnable接口,都无法获取到线程执行的返回结果。若线程执行过程中出现错误,主线程也不会感知到。
在Java的线程执行中,不管是直接继承Thread的方式,还是实现Runnable接口的方式,都不会获取到线程执行的返回结果。这样如果线程在执行过程中出现了错误,那么主线程也不会感知到。即使打印了日志,也不能立即抛出异常。事后查看日志才能发现出现了bug。而且到那时发生问题的代码点距离真正的问题点可能会相差很远。如果在线程池执行的过程中出现了bug能及时地抛出异常,那么这将会是一个很好的实现。解决上述问题的办法是使用Callable接口,其可以获取到线程的返回结果,通过Future的get方法来承接。

