线程创建的三种方式的比较(继承Thread,Runnable接口,Callable接口)
三种方式比较
重要级别:极高
面试题
继承Tread类和实现Runnable接口的区别?
- 两个共同点:都是创建一个异步线程
- Thread类是通过继承的方式来实现,而Runnable接口是通过实现的方式
- Thread类的子类不能再继承其他类,而Runnable接口的实现类是可以继承其他类
- Thread类的实例直接就是一个线程,而Runnable接口的实现类只是定义了线程需要执行的任务
- Runnable接口的实现类,可以被多个Thread实例同时使用
实现Runnable接口和实现Callable接口的区别?
- Runnable接口是JDK1.1提供的,而Callable接口是JDK1.5之后才提供的
- Runnable接口没有返回值,而Callable接口是有返回值
- Runnable接口无法处理异常,而Callable接口可以处理异常
- Runnable接口所定义的线程是一种异步线程,而Callable接口所定义的线程是一种同步线程