取自操作系统 - 原则与实践第3卷第5章问题4.这不是家庭作业,我现在很好奇。
Suppose that you mistakenly create an automatic (local) variable v in one
thread t1 and pass a pointer to v to another thread t2. Is it possible that a
write by t1 to some variable other than v will change the state of v as
observed by t2? If so, explain how this can happen and give an example. If
not, explain why not.
我不认为这是可能的,除非T1在较低级别范围内声明v,通过修改上述无关变量从堆栈中弹出,然后迅速将该内存重新分配给新的变量。但我所描述的并不是一个简单的写法,而且新的变量不再是v;至少不是T1。
如果这可能,我认为这意味着即使在单线程程序中,对任何无关变量的简单写入也可能以某种方式改变另一个内存位置。
这可能吗?