gpt4 book ai didi

引用子类 : avoid class loading deadlock 的 Java 静态初始化程序

转载 作者:行者123 更新时间:2023-12-01 11:19:50 24 4
gpt4 key购买 nike

我有课ItemType带有引用子类实例的最终静态字段:

public static final ItemType DURATION = new BuiltInAtomicItemType(x);

static class BuiltInAtomicItemType extends ItemType {

public BuiltInAtomicItemType(X x) {
this.x = x;
}

如果一个线程先加载父类(super class),而另一个类先加载子类,这会导致类加载死锁的可能性。

现在的问题是这是一个公共(public) API,我不能轻易更改它。我想消除类加载死锁的可能性,但我不想强制更改引用 ItemType.DURATION 的应用程序或其他 40 多个类似领域。

有没有办法在保留公共(public) API 的同时避免潜在的死锁?

最佳答案

状态报告:似乎没有人知道这个问题的解决方案。在一个复杂的应用程序中设计一个类结构以避免在类加载和初始化期间出现死锁的所有可能性似乎非常困难。在一般情况下,修改现有应用程序以消除此类可能性而不对公共(public) API 进行不兼容的更改似乎是不可能的。

关于引用子类 : avoid class loading deadlock 的 Java 静态初始化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50021182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com