请问这样的回答是对的么?如果不对请另外回答。感谢!
可能会出现数据不一致的问题,这主要是因为代码优化的原因,使得程序在运行时,CPU直接从通用寄存器中取一个变量临时缓存的数据,而不是从内存中取数据,这样会使程序运行的效率变快。
但是,当这个变量时一个外围设备的寄存器时,这个寄存器是时常变化的,这时虽然cpu得到了这个变量的值,但不是这个寄存器的值。
多线程也有可能出现这样的问题。
如果是单线程单处理器,并且你的调用的库本身没有并发,那么不会出现。
但是运行库可能会并发,多处理器切换也存在同步问题。