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

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

細說Java多線程之內(nèi)存可見性

難度中級
時長57分
學習人數(shù)
綜合評分9.63
181人評價 查看評價
9.9 內(nèi)容實用
9.6 簡潔易懂
9.4 邏輯清晰
老師可以發(fā)下ppt嗎
個人理解:不加volatile的普通變量不具有這個效果,比如線程對工作變量修改完之后,不會百分百對主內(nèi)存也修改,有可能改完自己工作變量后休眠了,一直不去對主內(nèi)存中的變量進行修改。但是線程對volatile變量會綁定對主內(nèi)存變量也修改的操作,也可以說對volatile變量的修改 有一個 “對自己工作區(qū)變量修改并且綁定了一個對主內(nèi)存變量修改”的原子性的操作。
個人一個比較淺顯的理解就是:
synchronized就是互斥鎖,實現(xiàn)底層就是總線鎖,當一個線程獲得該鎖時,其他線程就會進入阻塞狀態(tài),從而不能進行操作。
而volatile則不同,它有點像緩存鎖,但是又不像鎖。volatile變量在執(zhí)行寫操作時,會加入store的屏障指令,我的理解是這時其他線程不能能對該共享變量做出任何操作,但是可以操作其他共享變量。這時volatile的開銷就比synchronized小。

最贊回答 / 慕前端6229441
共享變量是在多線程操作的情況下,對某一個變量都有進行操作,該變量存儲在主存中,但是在多線程的工作內(nèi)存中都有一個副本,所以該變量是共享的,即為共享變量。 volatile變量是被該關鍵字修飾的變量。在單線程中也可以用來修飾變量,但是沒有意義。用在多線程中,是為了保證被其修飾的變量對于多線程來說都是內(nèi)存可見的。 在多線程中,volatile用來修飾共享變量,實現(xiàn)共享變量的可見性。
講的不錯,受教了!

已采納回答 / 自有如風
你看看這樣能不能理解:number的值可以存在三個地方:主內(nèi)存,cpu緩存,cpu寄存器。因為加上了volatile關鍵字,cpu每次對number的讀取都強迫cpu緩存從主內(nèi)存中讀取。但是count++操作有三步,讀count,計算count+1,將計算的結果給count。假設讀count已經(jīng)執(zhí)行了,number已經(jīng)放到了cpu寄存器中。此時當執(zhí)行權被其他線程搶走之后再次輪到當前線程執(zhí)行的時候,已經(jīng)不需要再讀number了。故number還是沒有變化
講得很好!受教了
看到有人評論加入synchronized后仍然有0出現(xiàn)的問題。
我的理解是:synchronized的作用是保證同步代碼塊中只能有一個線程在訪問,另外在訪問的時候,其他線程 不能訪問 其他synchronized同步代碼塊。所以結果有 0 和 6,是正常的。
加 synchronized 并不能解決結果可能出現(xiàn) 0 的問題,有點誤人子弟啊
volatile 能實現(xiàn)可見性 但是 synchronized 只能實現(xiàn)線程安全吧

已采納回答 / 一葉秋才
這個Dome告訴你 編譯時可能存在其它結果,導致數(shù)據(jù)不安全
public?static?void?main(String[]?args)?{
????SynchronizedDemo?synchronizedDemo=new?SynchronizedDemo();

???????synchronizedDemo.new?ReadWriteThread(true).st...

已采納回答 / 我是貓_夏
互斥鎖,同一時間,只能 有一個線程持有該對象的引用,對該對象進行操作
老師幸苦了
非常感謝老師!老師受累了!
贊講的太好了
課程須知
學習本課程前,你需要熟練掌握Java的基礎語法,熟悉Java多線程的基礎知識,以及synchronized實現(xiàn)線程同步的方法。
老師告訴你能學到什么?
1、內(nèi)存可見性 2、指令重排序 3、as-if-serial語義 4、synchronized實現(xiàn)可見性 5、volatile實現(xiàn)可見性

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號

友情提示:

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

本次提問將花費2個積分

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

為什么扣積分?

本次提問將花費2個積分

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

為什么扣積分?

舉報

0/150
提交
取消