亚洲福利网站,国产精品久久国产三级国电话系列 ,欧美久久久久久,蜜桃av在线

IT培訓(xùn)-高端面授IT培訓(xùn)機(jī)構(gòu)
云和教育:云和數(shù)據(jù)集團(tuán)高端IT職業(yè)教育品牌
  • 國家級(jí)
    全民數(shù)字素養(yǎng)與技能培訓(xùn)基地
  • 河南省
    第一批產(chǎn)教融合型企業(yè)建設(shè)培育單位
  • 鄭州市
    數(shù)字技能人才(碼農(nóng))培養(yǎng)評(píng)價(jià)聯(lián)盟
當(dāng)前位置:
首頁IT問答正文

線程安全要考慮哪些問題?

  • 發(fā)布時(shí)間:
    2023-02-01
  • 版權(quán)所有:
    云和教育
  • 分享:

線程安全是多線程領(lǐng)域的問題,線程安全可以簡單理解為一個(gè)方法或者一個(gè)實(shí)例可以在多線程環(huán)境中使用而不會(huì)出現(xiàn)問題,常見的線程安全需要考慮的問題如下:

原子性

原因:多線程下,不同線程的指令發(fā)生了交錯(cuò)導(dǎo)致的共享變量的讀寫混亂。

解決:用悲觀鎖或樂觀鎖解決,volatile 并不能解決原子性。

可見性

原因:由于編譯器優(yōu)化、或緩存優(yōu)化、或 CPU 指令重排序優(yōu)化導(dǎo)致的對(duì)共享變量所做的修改另外的線程看不到。

解決:用 volatile 修飾共享變量,能夠防止編譯器等優(yōu)化發(fā)生,讓一個(gè)線程對(duì)共享變量的修改對(duì)另一個(gè)線程可見。

有序性

起因:由于編譯器優(yōu)化、或緩存優(yōu)化、或 CPU 指令重排序優(yōu)化導(dǎo)致指令的實(shí)際執(zhí)行順序與編寫順序不一致。

解決:用 volatile 修飾共享變量會(huì)在讀、寫共享變量時(shí)加入不同的屏障,阻止其他讀寫操作越過屏障,從而達(dá)到阻止重排序的效果。

注意:

volatile 變量寫加的屏障是阻止上方其它寫操作越過屏障排到 volatile 變量寫之下

volatile 變量讀加的屏障是阻止下方其它讀操作越過屏障排到volatile 變量讀之上

volatile 讀寫加入的屏障只能防止同一線程內(nèi)的指令重排

主站蜘蛛池模板: 九江市| 朔州市| 道孚县| 平顶山市| 吴忠市| 洛浦县| 黔江区| 中江县| 安阳县| 鄂托克旗| 江津市| 荥阳市| 股票| 虞城县| 禹城市| 沭阳县| 运城市| 盱眙县| 南投市| 蚌埠市| 辽中县| 栾城县| 黄冈市| 温泉县| 郯城县| 大丰市| 普安县| 乌苏市| 肥乡县| 武义县| 河间市| 潜江市| 仁化县| 英超| 博兴县| 无棣县| 科尔| 东乌珠穆沁旗| 曲水县| 同江市| 正镶白旗|