Java 继承Thread 实现Runnable接口和实现Callable接口创建线程的区别
程序员文章站
2022-06-28 17:11:15
Java 继承Thread 实现Runnable接口和实现Callable接口创建线程的区别mycsdn多线程:Java多线程从实现方式来分可以分为两类:继承实现和接口实现,相较于继承,实现接口避免了单继承的局限性,所以较为常用。实现Runnable接口的方式,更加的符合面向对象,线程分为两部分,一部分线程对象,一部分线程任务。...
Java 继承Thread 实现Runnable接口和实现Callable接口创建线程的区别
mycsdn多线程:Java多线程
从实现方式来分可以分为两类:继承实现和接口实现,相较于继承,实现接口避免了单继承的局限性,所以较为常用。实现Runnable接口的方式,更加的符合面向对象,线程分为两部分,一部分线程对象
,一部分线程任务
。继承Thread类,线程对象和线程任务耦合在一起。一旦创建Thread类的子类对象,既是线程对象,有又有线程任务。实现runnable接口,将线程任务单独分离出来封装成对象,类型就是Runnable接口类型。Runnable接口对线程对象和线程任务进行解耦。
从功能上来说 Callable功能更加强大。无论时继承Thread类还是实现Runnable接口都是通过重写run方法,将要执行的代码放在run方法体内,而run方法是没有返回值的,Callable与Runnable的功能大致相似,Callable使用call方法,但是call()方法有返回值,call()方法还可抛出异常。
Callable 和 Future接口的区别:
- Callable规定的方法是call(),而Runnable规定的方法是run().
- Callable的任务执行后可返回值,而Runnable的任务是不能返回值的。
- call()方法可抛出异常,而run()方法是不能抛出异常的。
- 运行Callable任务可拿到一个Future对象, Future表示异步计算的结果。
- 它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。
- 通过Future对象可了解任务执行情况,可取消任务的执行,还可获取任务执行的结果。
本文地址:https://blog.csdn.net/m0_49297152/article/details/107881952
上一篇: JAVA堆区栈区方法区
下一篇: Python_2048(完结)
推荐阅读
-
Java中继承thread类与实现Runnable接口的比较
-
Java中实现多线程继承Thread类与实现Runnable接口的区别
-
JAVA并发编程(五):创建线程的第三种方式:实现Callable接口
-
Java 继承Thread 实现Runnable接口和实现Callable接口创建线程的区别
-
Android 之 实现Runnable 接口与继承Thread的区别
-
Java中实现多线程继承Thread类与实现Runnable接口的区别
-
Java 继承Thread 实现Runnable接口和实现Callable接口创建线程的区别
-
Android 之 实现Runnable 接口与继承Thread的区别