华南俳烁实业有限公司

java

當(dāng)前位置:中華考試網(wǎng) >> java >> java面試題 >> 文章內(nèi)容

volatile關(guān)鍵字是否能保證線程安全?

來源:中華考試網(wǎng)  [2020年10月16日]  【

  volatile關(guān)鍵字是否能保證線程安全?

  答案:否

  volatile關(guān)鍵字用在多線程同步中,可保證讀取的可見性,JVM只是保證從主內(nèi)存加載到線程工作內(nèi)存的值是最新的讀取值,而非cache中。但多個(gè)線程對(duì)volatile的寫操作,無法保證線程安全。

  假如線程1,線程2 在進(jìn)行read,load 操作中,發(fā)現(xiàn)主內(nèi)存中count的值都是5,那么都會(huì)加載這個(gè)最新的值,在線程1對(duì)count進(jìn)行修改之后,會(huì)write到主內(nèi)存中,主內(nèi)存中的count變量就會(huì)變?yōu)?;線程2由于已經(jīng)進(jìn)行read,load操作,在進(jìn)行運(yùn)算之后,也會(huì)更新主內(nèi)存count的變量值為6;導(dǎo)致兩個(gè)線程及時(shí)volatile關(guān)鍵字修改之后,還是會(huì)存在并發(fā)的情況。

  

java課程免費(fèi)試聽

害怕學(xué)不會(huì)?助教全程陪讀,隨時(shí)解惑!

擔(dān)心就業(yè)?一地學(xué)習(xí),可全國(guó)推薦就業(yè)!

預(yù)約申請(qǐng)免費(fèi)聽java課程

  • 地區(qū):
  • 姓名:
  • 手機(jī):
責(zé)編:yangliu1997
  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學(xué)歷考試
乃东县| 瑞昌市| 英山县| 博罗县| 攀枝花市| 新巴尔虎左旗| 华亭县| 榆中县| 汉川市| 项城市| 乐平市| 河间市| 荣昌县| 江西省| 临猗县| 静乐县| 宿迁市| 仁寿县| 涟源市| 玉环县| 苍山县| 宜良县| 钟祥市| 荔波县| 托里县| 同德县| 平顺县| 新巴尔虎右旗| 麻城市| 铅山县| 铜山县| 西乌珠穆沁旗| 乌拉特中旗| 突泉县| 平远县| 乐清市| 仁化县| 陇南市| 乌拉特前旗| 黔南| 义乌市|