Runnable接口和Callable接口的区别

Runnable和Callable接口都是用于创建线程,但Callable任务可以返回结果并能抛出异常,而Runnable则不能。Callable从Java 1.5开始引入,其call()方法允许任务有返回值和异常处理。FutureTask.get()方法用于获取Callable任务的结果,未获取时主线程不会阻塞。在异常处理上,Runnable的run()方法需要内部处理异常,不能向上抛出。
摘要由CSDN通过智能技术生成

Runnable需要实现run()方法
Callable需要实现call()方法
Runnable从jdk1.1开始加入
Callable从jdk1.5开始加入
区别1: 两者最大的区别,实现Callable接口的任务线程能返回执行结果,而实现Runnable接口的任务线程不能返回执行结果
注意点:Callable接口支持返回执行结果,此时需要调用FutureTask.get()方法实现,此方法会阻塞线程直到获取“将来”的结果,当不调用此方法时,主线程不会阻塞
区别2:Callable接口实现类中run()方法允许将异常向上抛出,也可以直接在内部处理(try…catch); 而Runnable接口实现类中run()方法的异常必须在内部处理掉,不能向上抛出

链接:(20条消息) Runnable接口和Callable接口的区别_perfectyw的博客-CSDN博客_runnable接口和callable接口的区别

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值