正在破冰
0
%
企鹅
Penguin
文章
作品
知识库
资料库
关于
中
EN
← 全部标签
# CAS
1 篇页面
页面
游戏开发
无锁编程与内存序
Lock-Free Programming & Memory Ordering
「无锁 (lock-free)」的真正含义不是不用互斥锁,而是从不让线程阻塞(作者说叫 block-free 更贴切)。数据竞争有三个来源:关键操作被打断、编译器与 CPU 的指令重排、缓存一致性协议优化造成的内存序问题。对应的工具是原子指令(TAS、XCHG、CAS、LL/SC)和内存屏障/栅栏(acquire、release、full fence),C++11 用 std::atomic 与 std::memoryorder 把它们封装成可移植接口。在此基础上可以写出自旋锁、可重入锁、读写锁,以及基于「本地准备 + 一次原子提交」事务的无锁数据结构。
文章
作品
知识库
资料库
关于
知识库
首页
文章
作品
知识库
资料库
关于
中文
English
切换深浅色
Esc
输入关键词开始搜索
−
100%
+
适应
1:1
关闭
Esc
滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原
回到顶部 ↑