当前位置:首页 > synchronized > 正文

synchronized锁升级过程和原理

不可中断性则确保了在执行过程中,线程能够不受外部中断影响,直到同步代码块执行完毕。

synchronized(这里的对象你看成一道门) { 这里是一个人进来了,把门反锁了 需要同步操作的代码 这里是里面的人事情做完了,出去了,门开着其他人可以进了 } 至于怎么锁的,这是java和jvm的规定和实现细节,作为普通程序员没必要深入那么多。

ava并发锁 当执行monitorenter时,若对象未被锁定时,或者当前线程已经拥有了此对象的monitor锁,则锁计数器+1,该线程获取该对象锁。 当执行monitorexit时,锁计数器-1,当计数器为0时,此对象锁就被释放了。 那么其他阻塞的线程则可以请求获取该monitor锁。

所谓锁扩容,是指从无锁到有偏锁,再到轻量级锁,最后到重量级锁的同步升级过程。 称为锁扩展,也称为锁。 升级。 在JDK 1.6之前,synchronized是重量级锁,意味着synchronized在释放和获取锁的时候会从用户态转换到内核态,转换效率比较低。