【发布时间】:2016-06-22 05:49:00
【问题描述】:
我有以下三个课程。
BaseClass.java
public class BaseClass {
static {
load();
}
public static void init() {
System.out.println("base init");
}
private static void load() {
System.out.println("In load method of base class");
DerivedClass dc = new DerivedClass();
System.out.println("Object creation done.");
}
}
DerivedClass.java
public class DerivedClass extends BaseClass {
public DerivedClass() {
System.out.println("derived class constructor");
}
public static boolean isSynthetic(String _attr) {
return true;
}
}
Helper.java
public class Helper {
public static void main(String[] args) {
Thread t = new Thread() {
public void run() {
BaseClass.init();
};
};
t.start();
System.out.println("calling static method of derived class..");
System.out.println(DerivedClass.isSynthetic("test"));
}
}
当我从 Helper.java 执行 main 方法时,我得到以下输出 -
调用派生类的静态方法..
在基类的加载方法中
在此执行停止后,进程仍在运行。 所以似乎有一些僵局,但我不明白为什么会这样。 需要帮助。
【问题讨论】:
标签: java multithreading concurrency deadlock