java中synchronized同步块是可以重入的。这就意味着如果一个java线程得到一个对象的锁之后,那个这个线程可以进入同一个对象同步的另一个java代码块。
情景一:
public class Reentrant{
public synchronized outer(){
inner();
}
public synchronized inner(){
//do something
}
}
outer()和inner()都被synchronized关键字修饰,这和synchronized(this)等效。一个线程调用outer()方法之后再调用inner()方法完全没有问题,因为这两个方法都是由相同的管程对象(this)同步,这就是重入。
情景二
最终结果也是正常
本文介绍了Java中synchronized关键字的重入特性,并通过两个具体情景展示了如何使用synchronized实现方法内部的重入调用。理解这一特性有助于更好地进行多线程编程。
---synchronized其他概念&spm=1001.2101.3001.5002&articleId=52695622&d=1&t=3&u=6cfdbcd5f4ff4e25bf2220eef7d4e419)
1180

被折叠的 条评论
为什么被折叠?



