成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

讀書筆記-JMM-重排序-創(chuàng)新互聯(lián)

重排序
  • 1、數(shù)據(jù)依賴性
  • 2、as-if-serial語義
  • 3、程序順序規(guī)則
  • 4、重排序?qū)Χ嗑€程的影響

重排序是指編譯器和處理器為了優(yōu)化程序性能而對(duì)指令序列進(jìn)行重新排序的一種手段。

天柱網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站于2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
1、數(shù)據(jù)依賴性

如果兩個(gè)操作同時(shí)訪問同一個(gè)變量,且存在寫操作,那么這兩個(gè)操作就存在數(shù)據(jù)依賴性。
數(shù)據(jù)依賴性分為三種:

  1. 寫后讀。
  2. 寫后寫。
  3. 讀后寫。

上面三種情況如果操作重排序,就有可能會(huì)改變執(zhí)行結(jié)果。所以編譯器和處理器在重排序的時(shí)候不會(huì)對(duì)存在數(shù)據(jù)依賴性的操作進(jìn)行重排序。
注:數(shù)據(jù)依賴性僅針對(duì)單個(gè)處理器中執(zhí)行的指令序列和單個(gè)線程中執(zhí)行的操作。

2、as-if-serial語義

解釋:不管怎么重排序,(單線程)程序的執(zhí)行結(jié)果不能改變。編譯器處理器runtime都必須遵守as-if-serial語義。

3、程序順序規(guī)則

遵守happens-before規(guī)則。
JMM僅僅要求前一個(gè)操作(執(zhí)行的結(jié)果)對(duì)后一個(gè)操作可見,且前一個(gè)操作按順序排在第二個(gè)操作之前。

4、重排序?qū)Χ嗑€程的影響

重排序會(huì)影響多線程的程序執(zhí)行結(jié)果。

class ReorderExample {int a = 0;
	boolean flag = false;
	public void writer() {a = 1; // 1
		flag = true; // 2
	}
	Public void reader() {if (flag) {// 3
			int i = a * a; // 4
			……
		}
	}
}

當(dāng)有兩個(gè)線程A和B順序操作writer()和reader()方法時(shí),執(zhí)行操作4時(shí)不一定能看到操作1對(duì)共享變量a的寫入。因?yàn)椴僮?和操作2不存在數(shù)據(jù)依賴性,操作3和操作4也不存在數(shù)據(jù)依賴性,可以對(duì)他們重排序。
操作3和操作4存在控制依賴性,會(huì)影響指令序列的并行度。為此,編譯器和處理器會(huì)采用猜測(cè)(Speculation)執(zhí)行來克服控制相關(guān)性對(duì)并行度的影響。
以處理器的猜測(cè)執(zhí)行為例,執(zhí)行線程B的處理器可以提前讀取并計(jì)算a*a,然后把計(jì)算結(jié)果臨時(shí)保存到一個(gè)名為重排序緩沖(ReorderBuffer,ROB)的硬件緩存中。當(dāng)操作3的條件判斷為真時(shí),就把該計(jì)算結(jié)果寫入變量i中。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

文章名稱:讀書筆記-JMM-重排序-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://jinyejixie.com/article0/decsoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站、品牌網(wǎng)站建設(shè)、網(wǎng)站改版網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
双柏县| 玛纳斯县| 高密市| 隆昌县| 富宁县| 连南| 咸丰县| 岳阳市| 陇西县| 龙陵县| 江达县| 龙南县| 浦县| 湖南省| 高雄县| 石林| 安国市| 紫金县| 明溪县| 余江县| 灵璧县| 和林格尔县| 屯昌县| 建瓯市| 苏尼特左旗| 宁南县| 辉南县| 拜城县| 修武县| 杭锦后旗| 普陀区| 金堂县| 集安市| 千阳县| 安远县| 甘肃省| 平遥县| 来凤县| 泽库县| 呼玛县| 余江县|