public class RegBoolMRSWRegister implements Register<Boolean>
private boolean old;
private SafeBoolMRSWRegister value;
public void write(boolean x) {
if (old != x) {
value.write(x);
old = x ;
}
}
public boolean read() { return value.read(); }
}
在上面的代码中使用了两个变量old和value。然而,根据我的观点,只能用一个变量来做同样的事情,那就是价值。为什么建立普通布尔MRSW寄存器需要2个寄存器?
感谢您的回复。是的,这一部分是了解。但考虑到这一部分,我们也可以用1个变量值做同样的事情。说 if(x!= value.get())value.write(x); 我的问题基本上是这样的实现中的问题。 –
我更新了我的答案和其他一些信息。 –