WangJiQing

导航

monitor原理

Java对象头

以32位虚拟机为例

普通对象

数组对象

mark word(32bits)

看后面两位即可区分哪种锁,无所和偏向锁需要看biased_lock的值是1还是0

工作原理

Monitor被翻译为监视器或管程

每个Java对象都可以关联一个Monitor对象,如果使用synchronized给对象上锁(重量级)之后,该对象头
的Mark Word中就被设置指向Monitor对象的指针

Monitor结构

当线程2执行完临界区(synchronized(){})代码后之后,Owner会通知Monitor唤醒Blocked中的线程,此时Owner会指向Blocked线程

posted on 2022-12-25 12:18  如梦幻泡影  阅读(28)  评论(0编辑  收藏  举报