亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

java - 關于i++的一個題目

瀏覽:61日期:2023-12-13 18:10:01

問題描述

使用2條線程對i=1進行自增(i++),每條線程各自執行100次,請問可能的最大值和最小值是多少?請給出解釋

另外問問,++i是否是原子性的?

問題解答

回答1:

最小可以是 3,即 +2,最大 201,即 +200 。。。。為什么 i 不從 0 開始。。。

一次循環過程是:

從內存讀取數據到寄存器

寄存器值++

寫回數據到內存

一個線程可能在這三步中的任意一步被打斷。是3的情況是:第一線程讀取數據1,然后被掛起,寄存器的值被保存到另一個地方。第二個線程,持續執行了 99 次(此時,內存中的值為 100),然后被掛起。第一個線程被喚醒,恢復寄存器的 1 +1 之后 (=2)被寫回內存,該線程被掛起第二個線程從內存讀取2到寄存器之后被掛起第一個全部執行完,把值寫回內存喚起第二個線程,恢復寄存器中的2,完成最后一次循環+1 之后寫回 3

所以最終結果是 3。。。。

還沒有想到更小的調度方式。。。

最大值就不用過多解釋了。。。。

回答2:

最小值為2,最大值為200。2就是兩個線程都在CPU緩存修改數據,最終內存只刷新了一次200 就是兩個線程交替讀取并修改,互相不競爭。都問最大值最小值了,自然不是原子性的。

標簽: java
相關文章:
主站蜘蛛池模板: 国产在线综合视频 | 精品牛牛影视久久精品 | 欧美视频在线看 | 日韩一区二区免费视频 | 999国产精品视频 | 伊人激情久久综合中文字幕 | 香蕉精品| 亚洲春色综合另类网蜜桃 | 国内黄色一级精品 | 美女被免费网站视频九色 | 精品国产免费久久久久久婷婷 | 国产一二精品 | 国产麻豆剧传媒精品国产免费 | 欧美在线性视频 | 国产在线视频www片 国产在线视频www色 | 黄黄网站 | 三黄日本三级在线观看 | 中国日韩欧美中文日韩欧美色 | bbixx在线观看 | 亚洲国产精品久久卡一 | 浪潮ar二三区 | 免费黄色高清视频 | 亚洲xxxxxx| 视频在线观看免费播放www | 国产麻豆媒一区一区二区三区 | 深夜小视频在线观看 | 在线视频一区二区三区 | 色婷婷久久 | 国产一级特黄aa大片爽爽 | 国产国产成人精品久久 | 日本特级aⅴ一级毛片 | 最新国产一区二区精品久久 | 国产一级视频在线观看网站 | 欧美精品黄页在线观看大全 | 九九精品视频在线免费观看 | 一级做a爰片久久毛片欧美 一级做a爰片久久毛片图片 | 国产女乱淫真高清免费视频 | 日本一级特黄大一片免 | 亚洲精品中文字幕第一区 | 全黄色片 | 国产777|