Synchonized

0 阅读1分钟

一、Monitor

1.组成结构:(1)Owner:当前拿到锁正在运行的线程。

(2)Entry List:竞争失败、等待锁释放的线程队列(对应 Java 里的 BLOCKED 状态)。

(3)Wait Set:调用了 wait()、主动让出锁并休眠的线程队列(对应 WAITING 状态)。

image.png

2.作用:当synchronized给某个对象加锁时,jvm 就会给这个对象分配一个monitor,对象的mark word指向monitor。