Java中的可重入监视器

根据Sun Microsystems的说法,Java监视器是可重入的,这意味着如果从方法内部调用方法,Java线程可以重用相同的监视器来执行不同的同步方法。

可重入监视器的优点

它消除了单个线程死锁的可能性。

让我们通过下面的示例来理解Java可重入监视器:

class Reentrant {  
    public synchronized void m() {  
    n();  
    System.out.println("this is m() method");  
    }  
    public synchronized void n() {  
    System.out.println("this is n() method");  
    }  
}  

在这个类中,m和n是同步方法。m()方法在内部调用n()方法。

现在让我们在一个线程上调用m()方法。在下面给出的类中,我们使用匿名类来创建线程。

public class ReentrantExample{  
public static void main(String args[]){  
final ReentrantExample re=new ReentrantExample();  
  
Thread t1=new Thread(){  
public void run(){  
re.m();//可重入类的调用方法  
}  
};  
t1.start();  
}}  
Output: this is n() method
this is m() method

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想