成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java - volatile 能否解決線程共享數(shù)據(jù)的安全。

瀏覽:103日期:2023-10-27 09:23:36

問(wèn)題描述

比如說(shuō)我要寫(xiě)一個(gè)單例模式 不用sycrynized同步方法 用volitile修飾

private Sigleton(){}

private static volitile Sigleton s = null;

public static Sigleton getInstance(){

if (s==null){ s= new Singleton(); } return s;

}

這樣能不能解決線程安全問(wèn)題。

怎么理解線程可見(jiàn)性

如果我兩個(gè)線程同時(shí)都進(jìn)來(lái) if s==null 最后還不是new出兩個(gè)sigleton對(duì)象嗎?

問(wèn)題解答

回答1:

如果new的開(kāi)銷很小的話,你這樣寫(xiě)完全沒(méi)問(wèn)題。但如果初始化開(kāi)銷很大,那還是得用 synchronized 。典型的 雙檢查鎖 是這樣寫(xiě)的:

private Singleton() {}private static volitile Singleton s = null;public static Singleton getInstance() { if (s == null) {synchronized (Singleton.class) { if (s == null) {s = new Singleton(); }} } return s;}回答2:

怎么理解線程可見(jiàn)性

先理解內(nèi)存模型。

線程并不直接修改主內(nèi)存中的變量,而是先寫(xiě)自己的工作內(nèi)存,然后再同步到主內(nèi)存中,如果還沒(méi)同步,其他的線程是看不到修改的(他們還是看到自己的工作內(nèi)存的緩存)。

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 久久青草免费线观最新 | 欧美freesex10一13黑人 | 日本一区二区三区在线 视频观看免费 | 一区二区三区视频观看 | 国产黄色片网站 | 久久精品国产影库免费看 | 成人久久久久久 | 韩国美女激情视频一区二区 | 亚洲 欧美 日韩在线 | 手机看片精品国产福利盒子 | 午夜在线伦理福利视频 | 国产成人爱片免费观看视频 | 欧美做爰xxxⅹ性欧 欧美做爰免费大片在线观看 | 噜噜噜狠狠夜夜躁精品 | 日韩美女一级毛片a | 美女把张开腿男生猛戳免费视频 | 国产欧美日本亚洲精品五区 | 精品免费国产一区二区三区 | www.亚洲成人 | 国产美女主播一级成人毛片 | 欧美三级一级 | 美女国产福利视频 | 欧美日韩一区二区三区在线观看 | 国产高清无专砖区2021 | 久草福利社 | 久草在线国产 | 久久91| 找国产毛片| 日韩欧美在线一级一中文字暮 | 午夜综合网 | 免费精品在线 | 亚洲视频黄 | 亚洲欧洲国产成人精品 | 国产欧美日韩综合二区三区 | 日韩三级在线观看 | 一级毛片在线免费播放 | 国产精品久久国产三级国电话系列 | 成人精品一区二区不卡视频 | 在线观看中文字幕亚洲 | 日日摸日日碰夜夜97 | 性精品 |