线程的生命周期
1.线程产生
2.线程存在
3.线程消亡
线程产生
- Java提供了线程类Thread
- Thread类在java.lang包中,使用该类不需要import语句进行引用
- 可以通过继承Thread类或者实现Runnable接口的方式创建线程对象
线程存在——运行
- 创建了线程对象之后,它需要调用start()方法获取使用CPU资源的排队机会
- 轮到某个线程运行时,JVM(Java虚拟机)就把CPU的使用权交给这个线程,并调用这个线程的run()方法运行该线程
线程存在——中断
可以引起线程中断的情况
- JVM将CPU的使用权从当前线程切换给其他线程
- 线程在运行期间执行了sleep(int millis)方法,进入休眠状态,休眠时间结束或者休眠被吵醒(interrupt),才能退出休眠状态
- 线程在运行期间执行了wait()方法,则这个线程中断,进入等待状态。可以使用notify()或者notifyAll()结束等待状态
- 线程在运行期间,执行了阻塞线程的某个操作,例如读取键盘输入的字符等,则线程中断
线程消亡
- 线程中的所有任务执行完毕,线程即消亡。
- 线程执行过程中被提前强制终止,线程会消亡。