首页
›
热销单品
›
软件编程与计算机基础
›
《内存一致性模型与排序》
所属分类:软件编程与计算机基础
当前为单品课程,可返回上一级继续浏览同方向资料。
← 返回上一级
← 返回所属目录
咨询 / 购买
📘
内存一致性模型与排序
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
课程导入
学习目标 · 核心概念 · 整体框架
课程导入
学习目标
02
硬件基础
现代CPU缓存层次结构 · 缓存一致性协议(MESI等)与内存排…
硬件基础
CPU
03
编译器与CPU重排序
指令重排序的类型(编译器重排 · CPU乱序执行 · 存储缓冲等)及其对程序可见性的影响
CPU
编译器
04
顺序一致性模型
定义 · 形式化描述 · 示例
顺序一致性模型
定义
05
放松一致性模型
TSO(Total Store Or… · x86架构下的内存排序行为与stor…
放松一致性模型
TSO
06
放松一致性模型
ARM/POWER架构的弱内存模型 · 包括acquire/release · relaxed操作及多拷贝原子性
放松一致性模型
ARM/POWER
07
内存屏障(Memory Barrier)
屏障类型(lfence · sfence · mfence
Memory
Barrier
08
原子操作与内存序
C++11/C11内存序(memor… · consume · acquire
原子操作
内存序
09
C++内存模型详解
happens-before关系 · synchronizes-with · dependency-ordered…
C++
内存模型详解
10
Java内存模型(JMM)
JMM的happens-before… · volatile与final语义 · 与C++内存模型的对比
Java
JMM
11
Rust内存模型
Rust的Send/Sync · 原子类型与内存序支持 · 以及所有权系统如何简化并发安全
Rust
内存模型
12
锁与内存序
互斥锁 · 读写锁 · 自旋锁的实现中如何利用内存屏障和原子…
内存序
互斥锁
13
无锁编程基础
无锁数据结构(栈 · 队列 · 链表)中的内存序选择与ABA问题
无锁编程基础
无锁数据结构
14
内存序与性能
不同内存序对性能的影响 · 如何权衡正确性与性能 · 常见优化技巧
内存序
性能
15
案例实战
x86平台下使用C++实现一个无锁队… · 分析内存序选择与性能调优
案例实战
x86
16
案例实战
ARM平台下使用C++实现一个基于a… · 对比x86差异
案例实战
ARM
17
案例实战
Java中使用volatile和At… · 验证JMM语义
案例实战
Java
18
案例实战
Rust中使用AtomicUsize… · 利用编译期保证避免数据竞争
案例实战
Rust
19
常见问题
内存序使用不当导致的bug(如丢失更… · 可见性失败 · 死锁)及调试方法
常见问题
bug
20
常见问题
内存屏障与原子操作混用时的陷阱 · 以及如何避免过度同步
常见问题
内存屏障
21
常见问题
弱内存模型下的重排序导致难以复现的并… · 如何用工具(TSan · herdtools)检测
常见问题
弱内存模型下的重…
22
工具与验证
使用C++原子类型与内存序的静态分析… · GenMC)验证模型正确性
工具
验证
23
工具与验证
使用Linux内核的kcsan和kt… · 以及用户态TSan的使用
工具
验证
24
高级主题
非原子变量的数据竞争与未定义行为 · 以及如何通过内存序避免
高级主题
非原子变量的数据…
25
高级主题
内存模型与缓存一致性协议的关系 · 以及硬件如何实现不同内存序
高级主题
内存模型
26
高级主题
持久化内存(PMEM)中的内存序与刷… · fence)对一致性的影响
高级主题
PMEM
27
综合实战
设计一个多线程生产者-消费者系统 · 要求在不同架构(x86/ARM)下正… · 使用合适的内存序
综合实战
设计一个多线程生…
28
综合实战
实现一个读写锁 · 比较基于原子操作和基于互斥锁的实现 · 分析内存序需求
综合实战
实现一个读写锁
29
综合实战
从零实现一个简单的内存模型模拟器 · 验证不同内存序下的重排序行为
综合实战
从零实现一个简单…
30
课程总结
回顾核心概念 · 常见误区 · 最佳实践
课程总结
回顾核心概念
所属VIP或分类
同VIP:45天精通C++编程
同VIP:45天精通Rust编程
同VIP:AE自动曝光算法设计实战