我在我的应用程序中使用了一些外部的jar文件夹,遗憾的是它本身没有正确清理,即第二次从这个库中创建一个对象时,它没有按预期工作。我怀疑这是因为库创建了一些继续运行的线程,但我不确定。
有没有办法强制彻底清理外部库造成的混乱?
答案 0 :(得分:1)
可能有与线程无关的原因。例如,静态类初始化程序仅在第一次加载类时运行一次。所以这样的事情可能是原因:
public class StupidSingleton {
private static StupidSingleton instance;
public StupidSingleton() {
if (instance == null) {
instance = this;
} else {
instance.foo(); // the implementation is irrelevant in this context
}
}
}
无论是什么,都有三种基本解决方案: