下面是一个用于测试内存屏障差异的 C 语言示例程序,演示在弱内存模型(如 ARM Cortex-A35)中,指令重排序可能导致的数据不一致问题,并对比不同同步机制的效果: 测试目标 验证以下场景: 无内存屏障:多线程环境下可能出现数据竞争。 内存屏障:强制指令顺序,避免数据竞争。 原子操作:通过原子指令保证操作原子性和内存顺序。 互斥锁:强制线程串行化,保证数据一致性。 代码实现 #include <pthread.h>