2025年深入浅出 Barriers 实现(一)

深入浅出 Barriers 实现(一)Barriers 字面意思为 壁垒 屏障 栅栏 在计算机领域中 Barriers 也有它独特的含义 具体来讲 在并行程序中 Barriers 是一种同步的手段 可被视为一种线程同步原语 如一组线程 进程的 Barrier 可以用来同步该线程 进程组

大家好,我是讯享网,很高兴认识大家。

Barriers,字面意思为“壁垒,屏障,栅栏”,在计算机领域中 Barriers 也有它独特的含义,具体来讲,在并行程序中,Barriers 是一种同步的手段,可被视为一种线程同步原语,如一组线程/进程的 Barrier 可以用来同步该线程/进程组,只有当该线程/进程组中所有线程到达屏障点(可称之为同步点)时,整个程序才得以继续执行。如比较熟悉的 Memory Barriers(Wikipedia),Memory Barriers可翻译为内存屏障。由于现代绝大多数的CPU都采用流水线和乱序执行(out-of-order),一条指令的执行一般分为:取指,译码,访存,执行,写回的若干个阶段,多条指令可能同时存在与流水线中并同时被执行,由于CPU具备乱序执行,往往后取的指令被提前执行了,还有,在多处理器的条件下,CPU 可能共享 Cache,此时就会发生 Cache 不一致的情况,再加上编译器优化,问题就变得很复杂了,如何保证指令执行的一致性呢?内存屏障就发挥了很大作用。在 Linux 内核中,最简单的内存屏障原语是(更多有关内核屏障请参看文档):


讯享网

#define barrier() __asm__ __volatile__("":::"memory")

讯享网
小讯
上一篇 2025-02-05 12:25
下一篇 2025-01-08 16:39

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/119658.html