Runnable接口和Callable接口的区别说明
下文笔者讲述Runnable接口和Callable接口的区别说明,如下所示
Runnable接口和Callable接口的简介
Runnable接口中:
run()方法的返回值是void
只需运行run方法
Callable接口中:
call()方法是有返回值的
是一个泛型
通Future、FutureTask配合
可以用来获取异步运行的结果
Runnable接口和Callable接口的区别
区别1:使用方法不同
Runnable需实现run()方法
Callable需实现call()方法
区别2:产生时间点不同
Runnable从jdk1.1开始加入
Callable从jdk1.5开始加入
区别3:
实现Callable接口的任务线程能返回执行结果
而实现Runnable接口的任务线程不能返回执行结果
注意事项:
Callable接口支持返回执行结果
但是需调用FutureTask.get()方法实现
此方法会阻塞线程直到获取“将来”的结果
当不调用此方法时,主线程不会阻塞
区别4:
Callable接口实现类中run()方法允许将异常向上抛出
也可直接在内部处理(try…catch);
Runnable接口实现类中run()方法的异常必须在内部处理掉
不能向上抛出
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


