synchronized是一种阻塞锁。其内部使用monitor实现。在调用synchronized修饰的方式时,会先判断对象的ACC_SYNCHRONIZED标志,如果该标志有设置,再去获取监视器锁,监视器会调用monitorenter方法,把对象的锁计数器+1,释放锁时,调用monitorexit,将对象的锁计数器减1,这样下一个调用的人在调用时,通过判断锁计数器的值是否等于0来实现是否允许执行该段代码。
如果非0,会等待,所以synchronized是一种阻塞锁。
学习笔记-锁synchronized
最新推荐文章于 2024-09-12 20:16:16 发布