有如下一道例题
当2个进程同时执行这段程序时,当进程1执行语句1时,进程2执行语句2时,问进程2是否可以影响进程1对if语句中结果的判断?
public class Pin{
private static Pin simulator = null;
public static Pin getInstance(){
- if(simulator == null){
-
simulator = new Pin();
}
3. return simulator;
}
问题的重点在于new 一个Pin时,将其attach到左边的变量上时,两个动作之间是否有interleaving
若没有,则当进程2创建了一个对象时,进程判断if中不为空,则进程1不会再new一个新的对象