1
我想这段代码是错误的,因为在完成构造函数之前,jvm可以选择运行onCreate()
。这个onCreate()方法是否总是在Foo()构造函数之后运行?
那么,当Foo()
构造函数完成时,如何确保onCreate()
将始终由另一个线程执行?
public class Foo{
public Foo(){
synchronized (this) {
new Thread(() -> {
synchronized (Foo.this) {
onCreate();
}
}).start();
}
}
protected void onCreate(){
}
}