java - 如何拥有对象的监视器

标签 java

我有一些这样的编码。

  public class WaitTest {

  public static void main(String[] args) {
    Object object = new Object();
    try {
      synchronized (object) {
        object.wait(5000);
      }
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
}

是否使用synchronized (object) 意味着 WaitTest 类拥有对象的监视器?

最佳答案

类没有监视器,线程有。

在您的示例中,WaitTest 不拥有监视器,而主线程拥有。

特别是,没有其他线程能够在同一对象上进入synchronized block ,包括调用任何objectsynchronized 方法,如果它有任何这样的方法。

关于java - 如何拥有对象的监视器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15242228/

相关文章:

Java LinkedHashMap 获取第一个或最后一个条目

java - 传输 dt_socket 8787 已经在使用中

java - 使用 JAva FX 运行在 1.7 JDK 上使用 JRE 11 编译的 Java 应用程序

Java猜谜游戏无限循环

Java:从 wsdl 获取示例请求 XML

java - 以编程方式更改 Spring Boot 属性

java - 如何获取和使用 JHipster 微服务 JWT 的身份验证 token

java - java.util.Random 真的那么随机吗?我怎样才能生成52! (阶乘)可能的序列?

java - OpenJPA 登录到 Websphere 中的单独文件

java - 在Java中定义常量并在集合中使用它们