callable和runnable的区别
Posted treasury
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了callable和runnable的区别相关的知识,希望对你有一定的参考价值。
相同点:
两者都是接口;(废话)
两者都可用来编写多线程程序;
两者都需要调用Thread.start()启动线程;
不同点:
两者最大的不同点是:实现Callable接口的任务线程能返回执行结果;而实现Runnable接口的任务线程不能返回结果;
Callable接口的call()方法允许抛出异常;而Runnable接口的run()方法的异常只能在内部消化,不能继续上抛;
注意点:
Callable接口支持返回执行结果,此时需要调用FutureTask.get()方法实现,此方法会阻塞主线程直到获取‘将来’结果;当不调用此方法时,主线程不会阻塞!
参考:
https://www.cnblogs.com/frinder6/p/5507082.html
https://blog.csdn.net/MrHamster/article/details/89891145
以上是关于callable和runnable的区别的主要内容,如果未能解决你的问题,请参考以下文章