什么线程正在初始化静态字段和静态块?从我的实验,我的结论是一样的“呼叫”线程,即什么线程正在初始化静态字段?
class Foo {
static {
System.err.printf("static {}: %s\n", Thread.currentThread());
}
}
public class Mini_StaticInitialization {
public static void main(final String[] args) {
System.err.printf("main: %s\n", Thread.currentThread());
new Foo();
}
}
输出
main: Thread[main,5,main]
static {}: Thread[main,5,main]
是否有任何限制,或者这是总是如此?
你的应用程序是单线程的。它的执行全部发生在同一个单线程中。那么你是什么意思,“什么线程......?”上面显示的应用程序只有一个线程。 – scottb
出于好奇:你为什么会关心哪个线程执行静态块? –
@scottb这是一个测试用例来阐明我的问题,显然这不是我的应用程序。 –