Thread 和 Runnable 两者之间的区别
一个类继承Thread,不能实现资源共享,因为一个类只能继承一个父类。
但如果实现Runable接口的话,是很容易实现资源共享的,因为一个类可以实现多个接口。
实现Runnable接口比继承Thread的优势:
- 适合相同程序的代码共享同一个资源
- 避免了java中单一继承的局限性
- 增加了程序的健壮性,即实现了解耦操作,代码可供多个线程共享,代码与线程之间相互独立。
- 线程池只能放入实现Runnable或Callable类线程,不能直接放入继承Thread的类
扩充:在java中,每次启动程序至少有两个线程启动,一个main线程,一个是垃圾回收线程。因为每当使用java命令执行一个类的时候,实际上都会启动jvm,每一个jvm其实就是在操作