爱编程的小didi 2022-03-31 19:30 采纳率: 20%
浏览 42

单线程下会出现数据的不一致性问题吗?

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

  • 写回答

1条回答 默认 最新

  • threenewbee 2022-03-31 21:20
    关注

    如果是单线程单处理器,并且你的调用的库本身没有并发,那么不会出现。
    但是运行库可能会并发,多处理器切换也存在同步问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月31日