|
yamasaMar 19, 2021
1
你需要补充多线程和并行的基础知识。答案是 unknown,根据 cpu 调度,1-4 之间全部可能。
|
|
Chenamy2017Mar 19, 2021
2
这不是操作系统里面并发的基本例子吗,自己跑一下比你问强多了。
|
|
3
未定义行为
|
|
CEBBCATMar 19, 2021 via Android
7
涉及可重入性,单纯地问答案其实没有什么意义
|
|
webcoderMar 19, 2021
8
不作线程锁的话,2-4 都有可能。
|
|
ch2Mar 19, 2021
9
结果为 4 的可能性是最大的,2 和 3 的情况比 segement fault 还要罕见 |
|
beatMar 19, 2021
10
做好并发控制,答案就是 4
|
|
gdtMar 19, 2021
11
随机的
|
|
xuanbgMar 19, 2021
12
等待足够的时间,a 就是 4 。
|
|
hauibojekMar 19, 2021
13
都执行完不是 4 吗。
|
|
cxe2vMar 19, 2021
14
a=a+1 够复杂耗时的话,结果应该就会有明显差异了
|
|
hejw19970413Mar 19, 2021
15
这个 都有可能。
|
|
nullllllllllllllMar 19, 2021
16
首先我们排除掉 0[狗头]
|
|
norzMar 19, 2021
17
@nullllllllllllll 再排除掉 1[狗头]
|
|
faceRollingKBMar 19, 2021
18
读 1 、写 1 、读 2 、写 2 、读 3 、写 3
除了读 n 位于写 n 之前外其他操作随机排列组合,就可以得出所有可能的结果 |
|
realpgMar 19, 2021
19
现代计算机,没特殊情况,99%可能是 4
当然你要起十万个线程就不可能正好 |
|
mingl0280Mar 19, 2021 via Android
20
那要看你用的是 atomic 还是非 atomic 的,算法有没有加锁等等情况,atomic/正确加锁的就是 4,其他的随机 2-4 都有可能。
|
|
SWBMESSIMar 19, 2021
21
count1: 0
count2: 29 count3: 1539222 count4: 32334689 用 go 程试了一下 |
|
FatinoraMar 19, 2021
22

刚学 go,这样写对不对,这个模拟的是不加锁的效果 |
|
eInKLX6Kh6sS3wycMar 19, 2021
24
如果 a 是基本数据类型,多核 cpu 空载下大概率是 2
但是本身这个写法结果是不可预知的。 |
|
25
欢迎投入 ponylang 怀抱,答案是“你不可能让两个 actor 同时写,没有一个 capability 支持这样操作”
|
|
xinghengMar 20, 2021
27
没有说语言环境,没有说 a 是局部还是全局变量,连示例代码都没有,猜毛线?
|