所谓Object Monitor机制,它就是以Java对象为基础的,在多线程环境下对特定对象的操作权限的一种控制方式。三个区域
- 一,待进入监控区(Entry Set) ,没有获得对象操作权限,停在synchronized标志前,线程状态标识为Block
- 二,对象操作权限持有区(Owner),一个时间点只可能有一个线程能拥有这个对象的操作权限。而当前持有对象操作权限的线程互斥量将被记录在这个对象的对象头中。
- 三,待授权区(Wait Set),wait等方法释放操作权,但还没有离开同步块(只有通过notify()或者相似方法被通知转移的线程能够重新参与对象操作权抢占)
PS 每个对象的Object Monitor控制过程相对独立,但是一个线程可以同时拥有一个或者多个对象的操作权限