我有一个单身人士课程:
public class Singleton {
private static Singleton istance = null;
private Singleton() {}
public synchronized static Singleton getSingleton() {
if (istance == null)
istance = new Singleton();
return istance;
}
public void work(){
for(int i=0; i<10000; i++){
Log.d("-----------", ""+i);
}
}
}
多个线程正在调用work()函数:
public class Main {
public static void main(String[] args) {
new Thread (new Runnable(){
public void run(){
Singleton s = Singleton.getSingleton();
s.work();}
}).start();
System.out.println("main thread");
new Thread(new Runnable() {
public void run() {
Singleton s = Singleton.getSingleton();
s.work();
}
}).start();
}
}
我注意到两个Threads同时运行,就像两个工作函数同时被实例化一样.
我想要运行最后一个线程来代替前一个线程,而不是同时运行.是否有可能在java中使第二个调用覆盖第一个调用的内存空间?