第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

細說Java多線程之內存可見性

難度中級
時長57分
學習人數
綜合評分9.63
181人評價 查看評價
9.9 內容實用
9.6 簡潔易懂
9.4 邏輯清晰
感覺這個共享變量可見性的原理跟多核系統與內存維持一致性好相似
繼續(xù)學習,啦啦
太贊了,如果有ppt就更好了
最后的辣條亮了 非常感謝Marton老師 .....
因為線程的執(zhí)行本身就是不確定的,加了synchronized關鍵字只能確?;コ庠L問這段代碼以及變量的可見性,并不能保證程序的執(zhí)行順序,也就是read和write方法的執(zhí)行順序。
學習了,以前多線程只了解基本的知識...
老師,啥時候能講解下 ThreadLocal 啊,講的狠到位!
italycappuccino:因為線程的執(zhí)行是不能確定順序的,有可能是讀操作先執(zhí)行,然后才是寫操作執(zhí)行,所以會出現結果是0。
視頻最后也說了,加上一個sleep(1000);這樣就能保證寫操作先于讀操作執(zhí)行,就不會出現0了。
期待老師可以把多線程這一課題繼續(xù)深入下去,幫助很大!
@italycappuccino
出現0是因為讀線程先得到了執(zhí)行,讀線程執(zhí)行完,寫線程才執(zhí)行,這個我里面也有講到,你稍微注意下,在“synchronized實現可見性(下)”的第03:30之后!另外,慕課網這點估計剪切的估計太快了,有點不太容易注意到。你可以在寫線程和讀線程之間加個休眠操作,讓寫線程執(zhí)行完,讀線程再執(zhí)行,也可以使用wait和notify來控制線程執(zhí)行的順序!
講的相當不錯,通俗易懂

已采納回答 / MartonZhang
?出現0是因為讀線程先得到了執(zhí)行,讀線程執(zhí)行完,寫線程才執(zhí)行,這個我里面也有講到,你稍微注意下,在“synchronized實現可見性(下)”的第03:30之后!另外,慕課網這點估計剪切的估計太快了,有點不太容易注意到,可以在寫線程和讀線程之間加個休眠操作,讓寫線程執(zhí)行完,讀線程在執(zhí)行,也可以使用wait和notify來控制線程執(zhí)行的順序!
public static void main(String[] args) {
for (int i = 0; i < 5000; i++) {
SynchronizedDemo2 demo = new SynchronizedDemo2();
demo.new ReadWriteThread(true).start();
demo.new ReadWriteThread(false).start();
}
}
以下是部分代碼,加了synchronized關鍵字,結果中依然有0出現,費解。。。環(huán)境:mac,jdk1.8.0_05
public synchronized void write() {
ready = true;
number = 2;
}
public synchronized void read() {
if (ready) {
result = number * 3;
}
System.out.println("result=" + result);
}
重排序結合線程交叉執(zhí)行
課程須知
學習本課程前,你需要熟練掌握Java的基礎語法,熟悉Java多線程的基礎知識,以及synchronized實現線程同步的方法。
老師告訴你能學到什么?
1、內存可見性 2、指令重排序 3、as-if-serial語義 4、synchronized實現可見性 5、volatile實現可見性

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!

本次提問將花費2個積分

你的積分不足,無法發(fā)表

為什么扣積分?

本次提問將花費2個積分

繼續(xù)發(fā)表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消