在Java中关于Thread中的同步和监视器

时间:2014-04-06 00:03:08

标签: java synchronization

我读到拥有监视器的线程如果需要,可以重新进入同一个监视器,如何实现。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

以下功能取得监视器的所有权:

function_a() {
    synchronized(monitor) {
        function_b();
    }
}

现在让我们说function_b看起来像这样:

function_b() {
    synchronized(monitor) {
        do_something();
    }
}

function_b中,我们的线程通过在其上声明第二次同步来“重新进入”监视器。由于线程已拥有监视器,因此线程可以继续进入第二个同步块。