mtrec 最近的时间轴更新
mtrec

mtrec

V2EX 第 387065 号会员,加入于 2019-02-25 18:15:45 +08:00
今日活跃度排名 4966
mtrec 最近回复了
日文星期一到日速记:小明养水母都活不过一个月 明天又是他的“月活水母进土日”
@CrazyRain0001 对 是这些视频 这个跟 13 楼讲的不冲突 就用 cppcon 里两个线程跑++i 的例子 CPU 可以保证两次都原子性的从内存读到 i 的值 然后分别一步步写到两个线程各自的 L2/L1 cache 和寄存器里 两个自增也能在 1 tick 完成 原子性的 然后再一步步地 commit 回 L3 再内存 就可能出现覆盖而得不到你想要结果 因为两个线程没有同步机制 而 std atomic 相当于一种硬件同步机制或者硬件锁 底层是通过 CPU 指令来实现的 现在在 ARM 或者 GPU 上支持还不算完善 这些 atomic 操作也是很多 lock free 数据结构的基础
@CrazyRain0001 我不了解你那边代码的情况无法回答你 建议你可以看看 std atomic 相关的内容 cppcon 有一期就是解释这个原理的
@sghwn2 加了 volatile 也不行 volatile 是提醒编译器别优化 可能别的地方也会改这个变量 每次用到的话从内存里重新取值 但是还是没解决多线程下可能的编译器 CPU 指令重排 memory order 能提供更精细的重排控制
面试官是对的 atomic 之后是原子的 里面还涉及更深一层的 memory order

“在现代 x86 等架构的 cpu 上对 bool ,int 类型的操作是原子的,或者说视同原子的”
不对 在多核多线程情况下 每个核都有自己的独占的寄存器/L1/L2 cache 不能保证原子性
40 天前
回复了 gzd1214 创建的主题 问与答 和怀孕 6 个月的老婆闹变扭了
lz 的确是嘴碎了点 后面要学会控制一下自己的脾气 孕妇情绪难免会不稳定 多用点心就好 别看楼上一堆没经验的 bb 赖赖不负责任的言论 按他们的标准这个世界就没几个人能结婚
40 天前
回复了 jack274 创建的主题 随想 小儿感冒发烧,是不是过度医疗了
lz 你有小孩吗?你自己觉得 OK 就行 不要用你那套身边统计学来指导他人
42 天前
回复了 miKaSaAkerMan 创建的主题 上海 关于去香港读一年水硕回上海考公
现在 msc 之类的一年港硕申请难度比得上我们之前申 phd 的标准 关港科大今年的申请费我没记错的话在千万这个量级
积极点向前看 现在行情不好 你应该庆幸自己选了提高学历 不然这几波裁员很可能就包括你 而你还可能因为学历问题再就业都麻烦
170 天前
回复了 coreki 创建的主题 程序员 作为程序猿居然投域名,亏到姥姥家了
@hemingcn 礼貌询价一下 hemi.ng
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   714 人在线   最高记录 6067   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 22:08 · PVG 06:08 · LAX 15:08 · JFK 18:08
Developed with CodeLauncher
♥ Do have faith in what you're doing.