【java】Monitor机制

monitor是一个同步工具,相当于操作系统中的互斥量,即值为1的信号量.

它内置于每一个object对象中,相当于许可证,拿到许可证即可以进行操作,没有拿到则需要进行阻塞等待.

synchronized又叫做内置锁,它是利用monitor来实现加锁解锁

我们来讲解一下syncrhoized加锁的同步块的执行过程:

       现在假设有代码块:  syncrhoized(Object lock){

                                                                         同步代码...;

                                    }

        它在字节码文件中被编译为:monitorenter;//获取monitor许可证,进入同步块

                                                     同步代码...

                                                     monitorexit;//离开同步块后,释放monitor许可证

猜你喜欢

转载自www.cnblogs.com/nbnode/p/9230309.html