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

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

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

難度中級
時長57分
學習人數
綜合評分9.63
181人評價 查看評價
9.9 內容實用
9.6 簡潔易懂
9.4 邏輯清晰
jls666
講錯了,線程中怎么可能還保存副本

最新回答 / tanyaping2015
應該加上synchronized(this),而不是為方法加synchronized

最新回答 / 慕移動9181930
嗯嗯這個可以有^_^...用框架吧還是,如果實在不想用,自己可為ie8及以下寫一個類似方法來模擬getElementsByClassName()
不會才學,會了還在學毛線,有些人比別人早知道兩天就開始裝上了喘上了,很好奇你這樣在公司混的開嗎?
感覺JMM的內存模型和多核并行中UMA和NUMA有些相似之處。多核并行中,對于局部的緩存或者是chach中的更新策略有兩種:寫無效和寫更新,寫無效是一種懶加載,即當一個核下的緩存被修改之后,在公共的內存和其他的核的副本處打上數據失效的標識,如果其他的核在訪問自己的緩存的時候發現了這個標識,就要去主動更新它。寫更新是指當一個核修改了自己的緩存后,會及時的更新其他的副本。JMM的處理過程和寫更新實在太相似了!

最贊回答 / ricklove
你根本就不理解。。這個volitate,只對單個操作有效,對i++ 或者其他多步的操作,根本保證不了線程安全
http://www.jianshu.com/u/1f0067e24ff8 jvm和并發編程相關的blog
講的很好,希望后后續大點的課程或者項目推出
0,6的結果,也可能是讀線程和寫線程start后,誰先被cpu調度引起的。好像只加synchronized不能控制0,6的結果。需要利用線程同步的知識來解決。而sleep那個利用主線程阻塞的方式,很危險。那個sleep完全是經驗值。如果寫線程本身函數方法執行時間用時超過sleep時間或用時不定,結果就又會亂了。
這里意思是線程的安全性主要是可見性和重排序兩種方面導致,有了synchronized就能解決可見性的問題,即共享變量在主內存和工作空間的值得到及時更新,;視頻后半部分說的是另外synchronized無法解決的重排序問題,重排序的原因自己看,所以要用線程休眠的方法,讓其中一個線程完全執行后,再和進行可見性操作,這樣就基本避免了重排序導致的值輸出問題
牛牛牛!期待更多作品!
原來是選擇錯誤的。。。。
推翻我對java基礎編程的理解
該volatile變量沒有包含在具有其他變量的不變式中,沒有懂。。。求解
課程須知
學習本課程前,你需要熟練掌握Java的基礎語法,熟悉Java多線程的基礎知識,以及synchronized實現線程同步的方法。
老師告訴你能學到什么?
1、內存可見性 2、指令重排序 3、as-if-serial語義 4、synchronized實現可見性 5、volatile實現可見性

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消