SoEZ

extends Thread与implements Runnable

0
阅读(4655)

1、如果extends Thread后就不能extends其他类了
2、如果implements Runnable,那还是要将一个ThreadAndRunnable对象传到Thread的构造方法中,new出一个线程对象, 
3、implements Runnable能让多个线程共享一个ThreadAndRunnable实例

4、1)一般认为:实现Runnable接口的对象,其着眼点主要含义是:一个计算任务.它代表一个要被其它线程(如:线程池中的线程)执行的任务.着眼点是:交由其它人去完成的一个计算任务.  ---对应着:要做的工作 ;2)一般认为:从Thread类继承的含义主要是:一个能执行其它(或自己)的任务的一个线程对象.着眼点是:线程的功能(通过继承来扩展执行其它计算任务的能力)  ---对应着:做工作的工作人员

 

1、Runable里没有run(),而是规定implementing   class必须要有run(),而且Runnable的作用仅限于此;而Thread   class里有许多好用的method,比如sleep()等  

  2、当你发现必须extends其他某个class,而又要用线程,因为无法extends   Thread,所以要implements   Runnable  

  3、如果你的某个class   A   implements   Runnable,则不可以直接用这个class,只能用new   Thread(A)得到的thread   object  

  4、对thread   object,用start()来启动,该method会先initialize   thread   object,然后invoke它的run()

    总之,使用Thread 需要用new Thread()或者new Thread(Runable target),就是说Runable的子类必须实现run()方法,并由一个Thread来用start()方法来调用Runable的run();