zoukankan      html  css  js  c++  java
  • 什么是内存模型的happens-before

    什么是内存屏障?

      内存屏障,又称为内存栅栏,是一组处理器指令,用于实现对内存操作的顺序限制。

    内存屏障为何重要?

      对主存的一次访问一般花费硬件的数百次时钟周期。处理器通过缓存能够从数量级上降低内存延迟的成本,这些缓存为了性能重新排列待定内存操作的顺序。

      也就是说,程序的读写操作不一定会按照它要求处理器的顺序执行。

      当数据是不可变,或者数据限制在线程范围内,这些优化是无害的。

      如果把这些优化与对称多处理和共享可变状态结合,那么就是一场噩梦。

    当基于共享可变状态的内存操作被重新排序时,程序可能行为不定。一个线程的写入的数据可能被其它线程可见。原因是数据写入的顺序不一致。适当的放置内存屏障,通过强制处理器顺序执行待定的内存操作来避免这个问题。

  • 相关阅读:
    java-并发解决方案
    linux-常用快捷键
    java-进程
    vim-常用快捷键
    数据库-事务
    spring-事务实现原理
    gdb
    x86 下的 struct 變數 member 擺放位置
    du 查看 資料夾 佔用空間
    ADC 計算時,階數的選擇
  • 原文地址:https://www.cnblogs.com/yangqiong1989/p/10666208.html
Copyright © 2011-2022 走看看