创建线程方式的比较
1.Java创建线程的方式
1)主要的方式
Java中创建线程主要有两种方式:
继承Thread类和实现Runnable接口
2)实现Callable接口
而在Java5后有增加了一个 Callable接口,可以理解为Runnable接口的增强版
其call()方法增加了 :1.call()方法可以有返回值 2.call()方法可以声明抛出异常
Callable接口并没有继承Runnable接口,所以不能直接作为Thread的target创建线程,必须将其封装成一个FutureTask类
FutureTask类实现了Future接口,并实现了Runnable接口
2.两种种方式之间的区别
由于实现Callable接口只是实现Runnable方式的增强版,所以将其归为同一种方式
1)实现Runnnable、Callable接口方式——
优点: a.线程类只实现了接口,还可以继承其他类
b.多个线程可以共享线程类的属性 ,多个线程可以共享同个target对象
缺点: 编程稍微复杂点,当访问当前线程时,必须使用Thread.currentThread()方法
2)继承Thread类的方式——
优点:编写简单,直接用this可获得当前线程
缺点:继承了Thread类,不能继承其他父类;不能共享线程类资源

浙公网安备 33010602011771号