lz 想问的不就是单核多线程时调度到 A 线程,B 线程的自旋还在不在旋吗,不旋,B 线程根本就不执行,这都没啥疑问吧
原问“是不是只能等 A 执行完毕” 有歧义所以引发了争论,厘清一下: 1. 确实必须得等 A 的时间片执行完毕 2. 不必等 A 线程执行完毕
补充一下,单核多线程这种并发条件下,B 线程根本没法通过自己去“抢占”资源,如果 A 没有释放锁,B 拿到的时间片会全部浪费在自旋上,还不如直接等待
GuuJiang
2021-05-04 14:07:55 +08:00
这篇帖子生动地展示了什么叫作“你在第二层,你以为我在第一层,实际我在第五层” 按照“是不是只能等 A 执行完毕”这样的表述,提问者应该在第一层,估计还没有形成时间片这个概念,于是第二层的人敏锐地意识到了这一点,指出了不管是不是单核,实际都有并发,但是这个帖子好巧不巧提到了自旋,于是引来了第五层的人,指出了在单核环境下自旋是无意义的,但是第二层的人无法区分第一层和第五层,把所有第五层的对手都当第一层的来辩论