题目:i的初始值为0,i++在两个线程里面分别执行100次,能得到最大值和最小值分别是多少
最大值:200最小值:2最小值分析(图片参考牛客网大佬)操作流程1(线程1)线程1先读i=0,紧接着线程1 i++ 99次 ,此时i的值为99,但未写入到内存中操作流程2(线程2)因为操作1未写入到内存中,内存中i=0,线程2从内存中取i=0操作流程3(线程1)线程1将i=99写入到内存中,此时内存的值为99操作流程4(线程2)线程2此时使用的i是自己的i值,不是内存中i=99这个值.执行i++后,i=1,并将i=1写入到内存中,覆盖了之前内存i=99的值操作流程5(线程1)此时线
原创
2021-06-11 22:50:45 ·
3170 阅读 ·
0 评论