VIP20
本课程属于:009-多线程与内存管理 编程基础与工程化 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

跨平台编译内存模型差异与应对

📚 共计 30 章节
01
内存模型基础概念
什么是内存模型、为什么需要内存模型、内存模型与编译器优化的关系
基础核心
02
C++内存模型概述
C++11/14/17/20演进 · happens-before · sequentially consistent原子操作
C++标准
03
C++原子操作详解
atomic类型 · load/store · fetch_add/compare_exchange · memory_order
原子并发
04
C++内存序详解
relaxed · consume · acquire · release · acq_rel · seq_cst
排序屏障
05
C++内存屏障
atomic_thread_fence · atomic_signal_fence · 编译器屏障asm volatile
屏障底层
06
C++数据竞争与未定义行为
数据竞争定义 · 避免方法 · 常见竞争模式
安全调试
07
C++锁与内存模型
mutex与内存序 · lock_guard/unique_lock · 条件变量
锁同步
08
C++ volatile关键字
volatile作用 · 与原子操作区别 · 多线程局限性
volatile编译器
09
Java内存模型概述
JMM基础 · happens-before · volatile语义 · final字段语义
JavaJMM
10
Java synchronized与内存模型
可见性保证 · 锁升级与内存屏障 · 双重检查锁定
synchronized锁
11
Java volatile详解
可见性保证 · 禁止指令重排序 · volatile与CAS
volatile并发
12
Java final与内存模型
final初始化保证 · 构造函数final语义 · 安全发布
final安全
13
Java锁与内存模型
ReentrantLock · AQS · 读写锁 · StampedLock
锁AQS
14
Java并发工具与内存模型
CountDownLatch · CyclicBarrier · Semaphore · Exchanger
工具并发
15
Java内存模型与JIT编译
JIT影响 · 逃逸分析 · 锁消除 · 锁粗化
JIT优化
16
Rust内存模型概述
所有权与内存安全 · Send/Sync · Unsafe Rust内存模型
Rust所有权
17
Rust原子操作与内存序
std::sync::atomic · Ordering枚举 · 原子类型使用
原子Rust
18
Rust内存屏障
fence · compiler_fence · atomic_signal_fence
屏障Rust
19
Rust Mutex与RwLock
std::sync::Mutex · RwLock · 与C++/Java锁对比
锁对比
20
Rust Unsafe与内存模型
Unsafe内存安全 · 原始指针 · FFI内存模型
UnsafeFFI
21
跨平台内存模型对比
C++ vs Java vs Rust · 优缺点分析
对比跨平台
22
编译器优化与内存模型
GCC/Clang/MSVC优化 · 编译器屏障 · volatile行为
编译器优化
23
CPU架构与内存模型
x86-TSO · ARMv8弱模型 · RISC-V · PowerPC
CPU架构
24
内存屏障指令
x86 mfence/lfence/sfence · ARM dmb/dsb/isb · RISC-V fence
指令屏障
25
缓存一致性协议
MESI · MOESI · MESIF · 伪共享问题
缓存协议
26
伪共享与缓存行对齐
产生原因 · 对齐技术 · alignas/alignof · cache line padding
性能对齐
27
无锁编程基础
CAS · ABA问题 · 无锁栈/队列/哈希表
无锁CAS
28
内存序与无锁数据结构
内存序选择 · RCU (Read-Copy-Update)
无锁RCU
29
跨平台编译实践
CMake · 条件编译 · 平台特定代码 · 测试策略
CMake实践
30
性能分析与调优
perf工具 · 内存模型性能问题 · 优化策略与最佳实践
性能调优