課程
/后端開發(fā)
/Java
/細說Java多線程之內(nèi)存可見性
synchronized講的有問題呀!這樣做并不能實現(xiàn)可見性呀!不要誤人子弟呀
2016-11-01
源自:細說Java多線程之內(nèi)存可見性 3-4
正在回答
呵呵,提問者沒搞懂,大家不要被這個人帶偏了,他才在誤人子弟!估計提問者是想說內(nèi)存可見了,怎么還會執(zhí)行結(jié)果不一致呢?誰說過保證了內(nèi)存可見性就保證執(zhí)行結(jié)果是一致的??別人是內(nèi)部線程類,視頻里read()操作和write()操作加了synchronized是原子性的,但是又不保證read()和write()哪個先執(zhí)行,所以會出現(xiàn)2個結(jié)果,如果是先read()執(zhí)行,那么result就是0,如果write()先執(zhí)行,那么result就是6。最后老師通過延時保證write()先執(zhí)行,結(jié)果就是只有6。建議多學習,少抱怨,只是能力不足,不要說老師不行哈。
慕的地3745111
似乎沒搞懂不要亂說
那么你說是哪里有問題呢??
????????synchronized不僅可以解決一個線程看到對象處于不一致的狀態(tài),還可以保證進入同步方法或者同步代碼塊中的每個線程都看到由同一個鎖保護之前所有的修改效果。這就是synchronized的互斥性和可見性。
????????老師講的也說的很清楚啊:
線程執(zhí)行互斥代碼的過程:
獲得互斥鎖
清空工作內(nèi)存
從主內(nèi)存拷貝變量的最新副本到線程工作內(nèi)存
執(zhí)行代碼
將更改后的最新的共享變量的值刷新到主內(nèi)存
釋放互斥鎖
洋__
舉報
用兩種方式實現(xiàn)內(nèi)存可見性,代領(lǐng)大家深層次學習Java中的內(nèi)存
1 回答synchronized(this) 中this代表是什么呀?
3 回答讀寫方法上面加了synchronized關(guān)鍵字,不能保證原子性
1 回答synchronized例子提問
1 回答關(guān)于可見性
2 回答synchronized實現(xiàn)什么鎖?沒聽清。
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2018-10-07
呵呵,提問者沒搞懂,大家不要被這個人帶偏了,他才在誤人子弟!估計提問者是想說內(nèi)存可見了,怎么還會執(zhí)行結(jié)果不一致呢?誰說過保證了內(nèi)存可見性就保證執(zhí)行結(jié)果是一致的??別人是內(nèi)部線程類,視頻里read()操作和write()操作加了synchronized是原子性的,但是又不保證read()和write()哪個先執(zhí)行,所以會出現(xiàn)2個結(jié)果,如果是先read()執(zhí)行,那么result就是0,如果write()先執(zhí)行,那么result就是6。最后老師通過延時保證write()先執(zhí)行,結(jié)果就是只有6。建議多學習,少抱怨,只是能力不足,不要說老師不行哈。
2017-06-29
似乎沒搞懂不要亂說
2016-11-16
那么你說是哪里有問題呢??
2016-11-07
????????synchronized不僅可以解決一個線程看到對象處于不一致的狀態(tài),還可以保證進入同步方法或者同步代碼塊中的每個線程都看到由同一個鎖保護之前所有的修改效果。這就是synchronized的互斥性和可見性。
????????老師講的也說的很清楚啊:
線程執(zhí)行互斥代碼的過程:
獲得互斥鎖
清空工作內(nèi)存
從主內(nèi)存拷貝變量的最新副本到線程工作內(nèi)存
執(zhí)行代碼
將更改后的最新的共享變量的值刷新到主內(nèi)存
釋放互斥鎖