关闭

Runnable和Callable接口的区别

354人阅读 评论(0) 收藏 举报
分类:

线程内容回顾
--------------------------------------------------------------
1.Android 中线程应用基础?(Thread,Runnable,synchronized)
2.Android 中线程消息模型?(Message,MessageQueue,Looper,Handler,HandlerThread)
3.Android 中线程异步对象?(AsyncTask)
4.Android 中线程池应用?(Executor,Executors,Runnable,Callable,Timer)

--------------------------------------------------------------


线程池的执行方法有俩个,一个是excute(没有返回),另一个是submit(返回一个Future<>)。构造有参时候可以放任务,callble和Runnable,

Callable接口和Runnable接口相似,区别就是Callable需要实现call方法,而Runnable需要实现run方法;并且,call方法还可以返回任何对象,无论是什么对象,JVM都会当作Object来处理。但是如果使用了泛型,我们就不用每次都对Object进行转换了。

 

Runnable和Callable都是接口

不同之处:
1.Callable可以返回一个类型V,而Runnable不可以
2.Callable能够抛出checked exception,而Runnable不可以
3.Runnable是自从java1.1就有了,而Callable是1.5之后才加上去的
4.Callable和Runnable都可以应用于executors。而Thread类只支持Runnable.
上面只是简单的不同,其实这两个接口在用起来差别还是很大的。Callable与executors联合在一起,在任务完成时可立刻获得一个更新了的Future。而Runable却要自己处理

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4834次
    • 积分:330
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:9篇
    • 译文:0篇
    • 评论:0条