答案有:
多个线程,同时调用单例的同一个方法会出现什么现象?
阻塞? 并不会!!!
属性是安全的? 也不是!!!
总结就是:
多线程调用单例的同一个方法
线程不会阻塞,数据也不安全
//单例
public enum Singleton {
INSTANCE;
private int age = 0;
private Singleton() {
System.out.println("这里是初始化方法");
}
public void whateverMethod() {
try {
Thread.sleep(new Random().nextInt(1000));
} catch (Exception e) {
}
age++;
try {
Thread.sleep(new Random().nextInt(3000));
} catch (Exception e) {
}
System.out.println(age);
}
}
//多线程
class RunnableDemo implements Runnable {
@Override
public void run() {
Singleton.INSTANCE.whateverMethod();
}
public static void main(String[] args) {
for (int i = 0; i < 1000; i++) {
RunnableDemo runnableDemo = new RunnableDemo();
new Thread(runnableDemo).start();
}
}
}