我正在研究 Java 中的可重入锁定。需要对这个概念进行一定的澄清,了解它实际上是如何工作的。我对以下代码段的理解是什么:
class Test{
public synchronized a(){
some code;
b();
some code;
}
public synchronized b(){
some code;
}
}
上面的代码有这种可重入锁问题的场景。
我在这里的理解是,假设我们有两个线程:在测试共享对象上执行的应用程序中的 T1 和 T2。
T1 或 T2 获取锁的任何人都在 a() 和 b() 上获取锁。先说T1并执行a()。当 a() 控制的执行到达 b(); 称呼。现在,在这种情况下,T1 期望此 b() 的新锁,或者因为它已经锁定了 b(),因此跳过锁定。
需要有关此行为的详细解释以及上述代码中的问题的帮助。此外,可重入锁定机制将如何在此处提供帮助以及对此的片段和详细解释。
红颜莎娜
慕慕森
相关分类