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()方法的异常必须在内部处理掉 不能向上抛出
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。