在程序开发中只要是多线程肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下好处:
1. 新状态:线程已被创建但尚未执行(start() 尚未被调用)。
2.
可执行状态:线程可以执行,虽然不一定正在执行。CPU
时间随时可能被分配给该线程,从而使得它执行。
3. 死亡状态:正常情况下 run()
返回使得线程死亡。调用 stop()或 destroy()
亦有同样效果,但是不被推荐,前者会产生异常,后者是强制终止,不会释放锁。
4. 阻塞状态:线程不会被分配
CPU 时间,无法执行。
原文:http://www.cnblogs.com/brucetie/p/3556316.html