只是一个简单的例子。不用解释
lock
,Interlocked
等等。
bool 表示
state
的值是否可用。 state
并且 bool 之后没有进一步修改。
int state;
volatile bool stateAvailable;
Thread A:
while(!stateAvailable) { sleep }
read state
Thread B:
state = 5;
stateAvailable = true;
这是否确保线程 A 始终正确读取状态?我对这里的保证感到困惑(仅针对这个简单的例子):
state
的可能过时值没有影响?如果你能指出这个问题的副本,我也会很感激。