多线程的实现方式
- 继承Thread方法,重写run方法
- 实现Runnable接口,重写run方法
两种实现方式的区别
- Thread创建多个线程需要new多个资源对象
- Runnable只创建一个资源对象
- Thread构造函数可以接收一个Runnable对象
- Runnable可以避免接口继承的单一性
线程的生命周期
创建:线程创建
就绪:start()方法运行或调用notify()方法
阻塞:线程调用sleep或wait方法
运行:拥有CPU权限
结束:调用run方法结束或者调用stop方法结束线程