1,创建:
当创建好线程对象的时候,也就是new Thread类或者是new Thread子类的时候。此时称为创建状态
2,就绪:
当线程对象调用了start()方法,开启线程了的时候,此时的线程已经开启了,随时可能会被cpu执行,因为cpu一此只能执行一个线程,当其他线程已经开起了,但还没有被cpu执行的时候,就称为就绪状态。
3,运行:
此时的cpu正在执行该线程,此时就称为运行状态。(运行的时候可能会发生意外,如断网,卡主了,cpu切换了执行权,睡眠等等,然而任务并没有执行完,此时的线程就会进入一个阻塞的状态)
4,阻塞:
线程在运行过程中发生了意外,或者是睡眠了等等,且任务还没有执行完毕,此时就称为阻塞状态。此时就失去了cpu的执行权,在此期间cpu不再去执行该线程,当睡眠结束,或者被唤醒了以后,就会又重新获得了cpu的执行权,但cpu不是一定立马就去执行它的,也有可能会立马执行(因为cpu的执行顺序是随机的)此时就重新回到了就绪状态,准备随时被cpu执行
5,结束(销毁):
当该线程的任务执行完毕以后,该线程就会自动销毁。
线程的执行状态图: