我很好奇是否在像这样的值分配命令之后立即:
a = 5;
是否保证新值已存储到变量中?如果这对于原始数据类型和其他数据类型不同?尤其是 Runnable 对象。
我在 MyClass 中运行了包含以下内容的方法:
synchronized(this){
while(pleaseWait){
try { System.out.println("sleeping"); wait();}
catch (Exception e) { e.printStackTrace(); }
}
}
是我正在调用方法 sleepMe() 的其他类,其中包含:
synchronized (myclass){
myclass.pleaseWait = true;
myclass.notify();
}
问题是,我是否必须在调用 sleepMe 后插入等待,以便 MyClass 的实例有时间更改 myclass.pleaseWait 的值?
我有几个 set 方法,其中我将复杂对象(对象的对象)分配给 MyClass 的实例。
谢谢