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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

下面這種場景需要使用volatile嗎,我認為是不需要的?

下面這種場景需要使用volatile嗎,我認為是不需要的?

慕桂英546537 2018-07-06 14:34:38
對象A中的成員變量boolean值B初始值為false;對象A被異步線程回調(diào),回調(diào)過程中修改A中的B的值為true,并且使用B,此時使用B(這次修改和使用是在同一個線程中的);且只會有這種用法,不會同時有多個線程來修改這個值我認為這種場景時不需要使用volatile的;其實是同一個對象的一個屬性,被兩次調(diào)用,第一次設(shè)置為false,第二次調(diào)用時設(shè)置為true,期間進行了一些異步的網(wǎng)絡(luò)驗證,驗證完后,回調(diào)該對象,設(shè)置標志說明已經(jīng)驗證完了,然后不會再次執(zhí)行異步網(wǎng)絡(luò)驗證,直接順序走下面的邏輯了
查看完整描述

3 回答

?
MMMHUHU

TA貢獻1834條經(jīng)驗 獲得超8個贊

volatile 這個限定符就是告訴編譯器讀取該變量的值時不要優(yōu)化,直接讀取原來地址所存取的值.從邏輯上進這樣寫當(dāng)然更好啦.一般而言,JAVA語言會將一個函數(shù)
中多次出現(xiàn)的同一個對象的值盡可能地存放在寄存器中,如果該對象的內(nèi)容可以放在寄存器中,且寄存器的內(nèi)容足夠多的話(畢竟寄存器的訪問比讀寫內(nèi)存要快得多).
但是使用了該限定符后,就會直接讀取該地址的內(nèi)容,而不是在第一次讀取之后就默認將該值存放在CPU的寄存器.你說這中途進行了一些其他操作,那是否會
與JAVA的默認讀取操作起沖突呢,還是存在可能性的,所以大家都習(xí)慣性地用Volatile.畢竟CPU速度那么快,us級別的時間,區(qū)別也不是很大

查看完整回答
反對 回復(fù) 2018-07-13
?
慕容3067478

TA貢獻1773條經(jīng)驗 獲得超3個贊

不需要。volatile通常用于嵌入式開發(fā)中,讀取硬件的寄存器值,此時不期望程序得到的值是緩存值。而是要真實的去硬件里讀取。


查看完整回答
反對 回復(fù) 2018-07-13
?
當(dāng)年話下

TA貢獻1890條經(jīng)驗 獲得超9個贊

不需要,如果其他線程需要讀取這個值的話就需要。


查看完整回答
反對 回復(fù) 2018-07-13
  • 3 回答
  • 0 關(guān)注
  • 157 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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