synchronize底层实现原理

java中每个对象都有一个monitor(监视器锁),当线程运行到synchronize锁定的代码时,会尝试获取monitor锁(执行monitorenter指令),

如果获取到,将该锁的计数器加1(初始值为0),其他的线程想要获取锁时,就会被阻塞,直到前面的线程释放掉monitor锁(执行monitorexit指令)。

synchronize获取和释放锁的工作都是有JVM来完成的,不需要我们自己动手。

相关知识:https://www.cnblogs.com/lycroseup/p/7486860.html

posted @ 2020-04-20 16:01  ¥芝麻绿豆¥  阅读(621)  评论(0编辑  收藏  举报