(一)线程的创建方式

(二)线程状态和生命周期

1.线程状态

  1. 一个线程对象在它的生命周期内,需要经过5个状态包括:新建(new)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、销毁(Terminated)。<br />完成生命周期如下图:<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/2603338/1630144522406-d2c0f7ce-94ec-4f74-9293-cb11c060b129.png#align=left&display=inline&height=287&margin=%5Bobject%20Object%5D&name=image.png&originHeight=382&originWidth=1000&size=49330&status=done&style=none&width=750)

(1)新生状态

用new关键字建立一个线程对象后,该线程对象就处于新生状态。处于新生状态的线程对象拥有自己的内存空间,通过start方法进入就绪状态。 :::info 这里的创建,仅仅是在JAVA的这种编程语言层面被创建,而在操作系统层面,真正的线程还没有被创建。只有当我们调用了 start() 方法之后,该线程才会被创建出来,进入Runnable状态。只有当我们调用了 start() 方法之后,该线程才会被创建出来 :::

  1. Thread t1=new Thread();

image.png

(2)就绪状态

调用start()方法后,JVM 进程会去创建一个新的线程,而此线程不会马上被 CPU 调度运行,进入Running状态,这里会有一个中间状态,就是Runnable状态,你可以理解为等待被 CPU 调度的状态

  1. t1.start()

image.png