读取缓存行的伪共享问题
生活随笔
收集整理的這篇文章主要介紹了
读取缓存行的伪共享问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
位于同一緩存行的兩個不同數據,被兩個不同的CPU鎖定,產生相互影響,此即偽共享問題。
因為讀取和寫入都是以緩存行為基本單位,CPU1只需要X,卻將位于同一緩存行中的Y給讀取到了,CPU2只需要Y,卻將X給讀到了。CPU1修改了X的值,此時CPU2中的緩存行被標記為invalid狀態,此時CPU2需要再到主存中去讀取緩存行,其實是不需要這么做的,因為CPU2并不需要X,至于為何會存在緩存行的概念,就是因為讓數據位于同一緩存行可以提升CPU效率。
總結
以上是生活随笔為你收集整理的读取缓存行的伪共享问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java普通对象的内存配置
- 下一篇: RabbitMQ使用${}读取配置文件中