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

您的位置:首頁技術(shù)文章
文章詳情頁

java - 關(guān)于i++的一個(gè)題目

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

問題描述

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

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

問題解答

回答1:

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

一次循環(huán)過程是:

從內(nèi)存讀取數(shù)據(jù)到寄存器

寄存器值++

寫回?cái)?shù)據(jù)到內(nèi)存

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

所以最終結(jié)果是 3。。。。

還沒有想到更小的調(diào)度方式。。。

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

回答2:

最小值為2,最大值為200。2就是兩個(gè)線程都在CPU緩存修改數(shù)據(jù),最終內(nèi)存只刷新了一次200 就是兩個(gè)線程交替讀取并修改,互相不競(jìng)爭(zhēng)。都問最大值最小值了,自然不是原子性的。

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 亚洲一级黄色大片 | 999国产一区二区三区四区 | 片免费观看网站视频 | 久久伊人青青 | 噜噜噜噜精品视频在线观看 | 91欧美激情一区二区三区成人 | 国产精品三级在线播放 | 亚洲视频免费在线播放 | 欧美日韩亚洲人人夜夜澡 | 小明看国产| 理论亚洲区美一区二区三区 | 爱爱视频免费看 | 国产爽片在线观看 | 国产亚洲高清在线精品不卡 | a级在线播放 | 高清一区在线 | 欧美国产人妖另类色视频 | 91精品国产综合久久久久久 | 正在播放国产一区 | 亚洲欧美综合网站 | 久久三级国产 | 欧美国产一区二区 | 中国一级大片 | 鲁丝片一区二区三区 | 中国黄色免费 | 久久在线观看免费视频 | 婷婷色中文字幕 | 日韩欧美一区二区三区不卡在线 | 中文字幕成人乱码在线电影 | 高清国产美女在线观看 | 日韩一级特黄毛片在线看 | 国产成人精品1沈娜娜 | 黑人插| 91社区在线观看 | 韩毛片| 1769亚洲资源站365在线 | 日本aaaa特级毛片 | 国产麻豆媒一区一区二区三区 | 欧美日韩在线播一区二区三区 | 在线看片免费 | 国内成人啪啪网站 |