创建线程方式的比较

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类,不能继承其他父类;不能共享线程类资源

 

 

 

 

 

 

 

posted @ 2012-11-20 12:51  canlu  阅读(107)  评论(0)    收藏  举报