- 主题:乱序执行的CPU怎么处理多线程中,共享变量有前后依赖的问题的?
编程技术版面变成垃圾堆的原因不在于这届网友不行,而在于cs没有理论上的发展了。
当然这么说也不公平,cs理论还没死绝。但是目前的理论门槛比较高,要大部分人都参与是不可能的了。
【 在 wjhtingerx 的大作中提到: 】
: 比如:
: 线程1:
: b=2;
: ...................
--
FROM 37.136.203.*
没有出问题是因为写的代码跑的次数不够,如果一天上1千亿的次数跑的代码,你就对多线程的内存可见性和一致性有很深刻的认识了,尤其是arm这种类型的cpu
【 在 wjhtingerx 的大作中提到: 】
: 但实际开发过程中,好像大家基本都没理这茬,感觉也没出问题,这种到底是不是问题? ...
--
FROM 114.249.28.*
问题这个场景不仅限于驱动或底层,在多线程数据传递共享方面,场景大量存在。我就没看过有谁注意到这个事,都是随便写,因为知道这个的就没几个人。但实际呢,我也没遇到过因为这个事导致的问题,我也干嵌入式软件快20年了,感觉挺奇怪的
【 在 beanspower 的大作中提到: 】
:
: 知道这个点不多是因为你的岗位接触的少。
: 如果你是一个嵌入式工程师,写过最简单的NOR FLASH驱动,就一定会遇到这种严格要求执行结果的case。因为一旦乱序,硬件就不work了。所以驱动代码中插入了很多barrier指令。
: ...................
--
FROM 107.182.184.*
多线程数据同步是基础常识,还有中断同步问题,只能说你那个圈子不讲究
可能某些嵌入式环境的工具链过于老旧,或者是“够用就好”,导致还处在原始社会阶段。搞嵌入式的别打我
【 在 wjhtingerx 的大作中提到: 】
: 问题这个场景不仅限于驱动或底层,在多线程数据传递共享方面,场景大量存在。我就没看过有谁注意到这个事,都是随便写,因为知道这个的就没几个人。但实际呢,我也没遇到过因为这个事导致的问题,我也干嵌入式软件快20年了,感觉挺奇怪的
:
:
--
修改:z16166 FROM 61.48.130.*
FROM 61.48.130.*
【 在 wjhtingerx 的大作中提到: 】
: 问题这个场景不仅限于驱动或底层,在多线程数据传递共享方面,场景大量存在。我就没看过有谁注意到这个事,都是随便写,因为知道这个的就没几个人。但实际呢,我也没遇到过因为这个事导致的问题,我也干嵌入式软件快20年了,感觉挺奇怪的
:
:
这个场景是造出来的,为了说明多线程乱序的情况。大多数情况下没有这个问题。或者,有问题的场景别人都趟平了。
这一定是个问题,你没遇到说明就是没有或者后果不严重呗。我说过了,如果结果不对系统就爆炸,那你的系统一定会爆炸。
--
FROM 111.197.20.*