Java-多线程-三种创建线程的方式优缺点对比
Java-多线程-三种创建线程的方式优缺点对比
继承Thread类的方式创建线程
- 优点:
- 方便实现,代码简单
- 缺点:
- 必须重写run方法
- run方法不能有返回值
- run方法不能抛出异常
- Java的单继承特性,一个类继承了Thread之后就不能再继承自其它类了
- 资源之间共享的时候,变量必须使用static进行修饰
- 必须重写run方法
实现Runnable接口的方式创建线程
- 优点:
- 实现接口,线程类就还能继承其它类
- 线程之间资源共享方便,不用加static进行修饰
- 缺点:
- 必须重写run方法
- run方法不能有返回值
- run方法不能抛出异常
- 必须重写run方法
实现Callable接口的方式创建线程
- 优点:
- 实现接口,线程类就还能继承其它类
- 线程之间资源共享方便,不用加static进行修饰
- 线程可以有返回值
- 线程可以抛出异常
- 缺点:
- 线程创建比较麻烦,代码比较复杂
Thread类与Runnable之间的关系
- 从源码可以发现,Thread类也实现了Runnable接口
class Thread implements Runnable {}