亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

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

難度中級
時長57分
學習人數
綜合評分9.63
181人評價 查看評價
9.9 內容實用
9.6 簡潔易懂
9.4 邏輯清晰
D是不是錯誤的啊,
這個例子是《Effective Java》里面的吧,Concurrency那一節的
老師是在鵝廠工作的嗎?在知乎上看到過您
tinghao
解決讀取 半個變量的情況應該是加 synchronized關鍵字,volatile不不保證原子性的。。
這道題應該AD都錯了吧
volatile和synchronized 的最大區別就是 前者不能保證變量或者代碼操作的原子性,而后者可以。。。原子性:要么操作完全,要么不操作。即,要么操作為1要么為0。。而volatile可能值執行某項操作的一部分,比如 操作了0.6,這樣子,算什么事兒嘛,對吧。。所以,這個就是區別。。。

個人總結,如有錯誤,望批評指正。發私信
因為線程的執行本身就是不確定的,加了synchronized關鍵字只能確?;コ庠L問這段代碼以及變量的可見性,即某線程在修改共享變量(通過自己的工作內存來修改)時,其他的所有線程無法獲得共享變量的信息。所以synchronized并不能保證程序的執行順序。所以即使加了synchronized也可能會出現0。順序是隨機的,看jVM內存以及CUP的調度了。
樓下的話差矣。。多線程執行,可以說是很“亂”的,和不是按照你代碼寫的順序那樣子執行的。。一旦所有線程調用了start()后,那么就會出現
“不可控”的局面。。。ps:強烈要求慕課提供回復功能。
this啊 又不是 class 這題A是錯誤的啊 大哥
長見識了,完結撒花~~
逗B,。。。比較底層,長見識了
太棒了,感謝Marton老師
這是我看到的講線程最透切的視頻,還是從原理上來講解,讓人學起來更來勁。感恩.....
贊贊贊贊贊贊贊贊贊贊贊贊
課程須知
學習本課程前,你需要熟練掌握Java的基礎語法,熟悉Java多線程的基礎知識,以及synchronized實現線程同步的方法。
老師告訴你能學到什么?
1、內存可見性 2、指令重排序 3、as-if-serial語義 4、synchronized實現可見性 5、volatile實現可見性

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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

友情提示:

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

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消