java多线程编程是非常重要的,以下是博主自己理解的多线程中线程的状态图解

1605238683-759d0586d582d1c

共有5种状态,新建-就绪(可运行)-运行-阻塞-停止,其中进入阻塞状态的线程原因有很多,大家可以自行百度了解,常见的有:Object类的wait方法, Thread 类的sleep方法等。

其中,在详细说下就绪到运行期间,到底发生了什么。

1605238685-ecdc9441c42fc5f

多个就绪状态的线程会先进入竞争队列,在去抢占一个对象锁,只有抢占到对象锁之后,线程才能真正干事情,若线程主动丢弃对象锁,会进入等待队列,等待下一次唤醒!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注