嵌套同步关键字

Nested synchronized keyword(嵌套同步关键字)

本文介绍了嵌套同步关键字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 Java 中有这段代码:

I have this code in Java:

    public void doSomeThing() {
        synchronized (this) {
            doSomeThingElse();
        }
    }
    public void doSomeThingElse() {
        synchronized (this) {
            // do something else
        }
    }

这个代码可以阻塞吗?我的意思是,这段代码可以一直等待吗?

Can this code block? I mean, Can this code wait for ever?

推荐答案

作为 java 文档描述 可重入锁定:

一个线程可以获取一个锁已经拥有

a thread can acquire a lock that it already owns

第二个同步块使用相同的锁,因此将始终可用,因为该锁已在外部方法中获取.

The second synchronized block is using the same lock and thus will always be useable as the lock has already been aquired in the outer method.

不,不会出现死锁.

这篇关于嵌套同步关键字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:嵌套同步关键字

基础教程推荐