Java runnable和callable的异同

1、相同点

两者都是接口

两者都需要调用Thread.start启动线程

2、不同点

callable的核心是call()方法,允许返回值,runnable的核心是run()方法,没有返回值

call()方法可以抛出异常,但是run()方法不行

callable和runnable都可以应用于executors,thread类只支持runnable

3、实例

Runnable和Callable的接口定义

@FunctionalInterface
publicinterfaceRunnable{
/**
*Whenanobjectimplementinginterface<code>Runnable</code>isused
*tocreateathread,startingthethreadcausestheobject's
*<code>run</code>methodtobecalledinthatseparatelyexecuting
*thread.
*<p>
*Thegeneralcontractofthemethod<code>run</code>isthatitmay
*takeanyactionwhatsoever.
*
*@seejava.lang.Thread#run()
*/
publicabstractvoidrun();
}
@FunctionalInterface
publicinterfaceCallable<V>{
/**
*Computesaresult,orthrowsanexceptionifunabletodoso.
*
*@returncomputedresult
*@throwsExceptionifunabletocomputearesult
*/
Vcall()throwsException;
}
原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享