【问题标题】:What does the phrase "class object" refer to in the context of thread synchronization?在线程同步的上下文中,短语“类对象”指的是什么?
【发布时间】:2016-02-16 23:20:36
【问题描述】:

我是 Java 新手,正在尝试学习同步的概念。我从 Java Tutorial Oracle 中看到了这句话。我正在努力理解他们所说的“类对象”一词所指的内容。类对象到底是什么?

你可能想知道当一个静态同步方法是 调用,因为静态方法与类相关联,而不是 目的。在这种情况下,线程为 与类关联的类对象。从而访问类的静态 字段由与任何锁不同的锁控制 类的实例。

【问题讨论】:

    标签: java multithreading


    【解决方案1】:

    Class<T> 本身就是一个类。您可以通过以下方式获取类实例:

    • 调用例如String.class(如果你静态知道类),它是Class<String> 的一个实例
    • 调用someInstance.getClass()(如果你想要一个实例的具体类),它是Class<? extends SomeInstance>的一个实例,假设someInstance是一个SomeInstance类型的引用(绑定是因为它可能是一个SomeInstance 的子类。

    【讨论】:

      【解决方案2】:

      Class 是 Java 中的一个实际类。存在Class 类型的对象。每个关键字-class 将关联一个Class 类型的对象(至少我假设-这是有道理的并且使该块有意义)。

      我认为这种行为是有道理的——当你同步一个静态方法时,你当然不能与任何对象同步。

      可以说synchronized static 是一种反模式。这是一个程序范围的瓶颈和可扩展性的诅咒。假设您的程序在 1 GB 服务器上运行良好。如果您想将其调整为具有 256 倍端口和网络容量以及 8 倍内核的 8 GB 服务器,则无法扩展同步的静态代码。当然,您不能创建另一个对象。我认为唯一的解决方案是启动另一个进程和另一个 JVM。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-04
        相关资源
        最近更新 更多