50,523
社区成员
发帖
与我相关
我的任务
分享
public class SingletonTest {
private static SingletonTest instance = null;
private SingletonTest() {
}
public static Singleton getInstance() {
if (instance == null) {
synchronized (instance) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
public class SingletonTest {
private static SingletonTest instance = null;
private SingletonTest() {
}
private static synchronized void syncInit() {
if (instance == null) {
instance = new SingletonTest();
}
}
public static SingletonTest getInstance() {
if (instance == null) {
syncInit();
}
return instance;
}
}
public class SingletonTest {
private static SingletonTest instance = null;
public static void main(String[] args) {
for (int i = 0; i < 100000; i++) {
new Thread(new Runnable() {
@Override
public void run() {
getInstance1();
}
}).start();
}
}
public static SingletonTest getInstance1() {
if (instance == null) {
synchronized (SingletonTest.class) {
System.out.println("synchronized");
if (instance == null) {
System.out.println("new");
instance = new SingletonTest();
}
}
}
return instance;
}
}
public class SingletonTest {
private static SingletonTest instance = null;
public static void main(String[] args) {
for (int i = 0; i < 100000; i++) {
new Thread(new Runnable() {
@Override
public void run() {
getInstance2();
}
}).start();
}
}
public static SingletonTest getInstance2() {
synchronized (SingletonTest.class) {
System.out.println("synchronized");
if (instance == null) {
System.out.println("new");
instance = new SingletonTest();
}
}
return instance;
}
}