1、 Thread是类,Runable是接口;java中要实现多线程,要么继承Thread类并覆写本类中的run()方法,要么实现Runnable接口的run()方法。
这两中方式最终都是通过调用start()方法来实现多线程。切记不能直接调用Thread类或Runnable对象的run()方法,因为直接调用run()方法,只会执行同一个线程中的任务,而不会启动新线程。调用start()方法将会创建一个执行run()方法的线程。
2、在程序开发中只要是多线程肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下好处:
- 避免点继承的局限,一个类可以实现多个接口
- 适合与资源的共享
3、Thread和Runnable是两种完全不相同的多线程实现:一个是多个线程分别完成自己的任务,一个多个线程共同完成一个任务。多数情况下我们实现多线程应该使用Runnable接口,这很重要,因为除非程序员打算修改或增强类的基本行为,否则不应该为该类(Thread)创建子类。
|
|