sponsored links

Java併發程式設計(六)三大特性:原子性、可見性、有序性

上一篇:Java併發程式設計(五)Thread啟動原始碼分析

一、原子性

  原子性:即一個操作或者多個操作 要麼全部執行並且執行的過程不會被任何因素打斷,要麼就都不執行。

  一個很經典的例子就是銀行賬戶轉賬問題:

  比如從賬戶A向賬戶B轉1000元,那麼必然包括2個操作:從賬戶A減去1000元,往賬戶B加上1000元。

  試想一下,如果這2個操作不具備原子性,會造成什麼樣的後果。假如從賬戶A減去1000元之後,操作突然中止。然後又從B取出了500元,取出500元之後,再執行 往賬戶B加上1000元 的操作。這樣就會導致賬戶A雖然減去了1000元,但是賬戶B沒有收到這個轉過來的1000元。

  所以這2個操作必須要具備原子性才能保證不出現一些意外的問題。

  同樣地反映到併發程式設計中會出現什麼結果呢?

  舉個最簡單的例子,大家想一下假如為一個32位的變數賦值過程不具備原子性的話,會發生什麼後果?

  i = 9;

  假若一個執行緒執行到這個語句時,我暫且假設為一個32位的變數賦值包括兩個過程:為低16位賦值,為高16位賦值。

  那麼就可能發生一種情況:當將低16位數值寫入之後,突然被中斷,而此時又有一個執行緒去讀取i的值,那麼讀取到的就是錯誤的資料。

二、可見性

可見性是指當一個執行緒修改了共享變數後,其他執行緒能夠立即得知這個修改;

如:執行緒1和執行緒2同時載入變數flag=1到自己的本地記憶體中來,但是2個執行緒在不同的cpu執行此時可能就會出現執行緒1將flag修改為2,但是這個時候只是在自己的工作記憶體中,或者說cpu的快取記憶體中,還沒來得及寫入主記憶體,也有可能寫入了主記憶體,但是執行緒2沒有及時去重新整理主記憶體的資料,這個時候就會導致執行緒2讀取的flag還是為1;

這個就是併發程式設計中比較常見的可見性問題,後續會講解volatile如何解決可見性問題的;

Java併發程式設計(六)三大特性:原子性、可見性、有序性

三、有序性

編譯器和指令器,有的時候為了提高程式碼執行效率,會將指令重排序;

public class Singleton {
    private Singleton() { }
    private volatile static Singleton instance;
    public Singleton getInstance(){
        if(instance==null){
            synchronized (Singleton.class){
                if(instance==null){
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}

instance = new Singleton();

這條語句實際上包含了三個操作:1.分配物件的記憶體空間;2.初始化物件;3.設定instance指向剛分配的記憶體地址。但由於存在重排序的問題,可能有以下的執行順序:

Java併發程式設計(六)三大特性:原子性、可見性、有序性

如果2和3進行了重排序的話,執行緒B進行判斷if(instance==null)時就會為true,而實際上這個instance並沒有初始化成功,顯而易見對執行緒B來說之後的操作就會是錯得。而用volatile修飾的話就可以禁止2和3操作重排序,從而避免這種情況。volatile包含禁止指令重排序的語義,其具有有序性。

分類: 娛樂
時間: 2022-01-07

相關文章

何炅被實名舉報?蔡少芬張晉合體營銷?王一博被節目組退貨?

何炅被實名舉報?蔡少芬張晉合體營銷?王一博被節目組退貨?
1.王一博 之前上面對圈內開展嚴管的政策下達以後,一直就有人關注之前小部分粉絲和女演員粉絲互撕的情況,是否對王一博正在上的<天天向上>會產生什麼樣的影響,近期有瓜友說自己瞭解到王一博要退出 ...

劉雪華獨居生活讓人心疼,娛樂圈還有不少這樣的明星她們又會怎樣

劉雪華獨居生活讓人心疼,娛樂圈還有不少這樣的明星她們又會怎樣
在娛樂圈,人們不僅在關心明星的美貌,還會關心明星的私生活,雖然說偶像塌房是挺難受的,但如果明星一直不結婚生子的話,老的真的會很孤獨.近日,劉雪華喪偶後獨居九年的生活曝光,讓人看了很心酸. 劉雪華已經不 ...

有錢大佬劉鑾雄,同病相憐吳奇隆,蔡少芬為何選擇“無名”張晉

有錢大佬劉鑾雄,同病相憐吳奇隆,蔡少芬為何選擇“無名”張晉
01 說幾位香港身世悲慘的女明星,蔡少芬絕對穩坐其中. 有的明星好歹是品嚐過富裕家庭的美好,但是蔡少芬的出生沒有一絲光亮. 1973年蔡少芬出生在貧寒的家庭中,媽媽是全職主婦,爸爸微薄的收入.雖然窮, ...

蔡少芬和張晉|哪有什麼“模範夫妻”,只不過是更現實的婚姻

蔡少芬和張晉|哪有什麼“模範夫妻”,只不過是更現實的婚姻
17歲港姐選拔季軍,18歲出道,被富商包養6年,分手費超過1億,後被告白幾次,迎來13年婚姻. 她是蔡少芬,她是張晉的妻子. 一.戀愛不是童話 "追我的又不是你一個!"蔡少芬在張晉 ...

扒7個哥哥的房子,張智霖租別墅住,趙文卓家有健身房,張晉家小

扒7個哥哥的房子,張智霖租別墅住,趙文卓家有健身房,張晉家小
張小嫻說過:不要依賴別人,當一個人自己有房子.有面包,對愛情可以有更高的要求. 這一句話是對女人說的. 對於男人而言,房子意味著什麼? 房子對於婚姻而言,就是男人帶給女人的安全感.沒有這種安穩感,女人 ...

《披荊斬棘》三公分組,胡海泉尹正見風使舵,張智霖拒絕張晉好剛

《披荊斬棘》三公分組,胡海泉尹正見風使舵,張智霖拒絕張晉好剛
近日,由芒果臺獨家打造的音樂競演類真人秀<披荊斬棘的哥哥>正在熱播中,節目同時聚齊了陳小春.張智霖.言承旭.張淇.黃貫中以及趙文卓等大批實力派男星加盟.每次更新都會掀起收看熱潮,無疑是&l ...

《哥哥》三公造型齊翻車:大灣區風格跑偏,張晉陣營化身狂野男孩

《哥哥》三公造型齊翻車:大灣區風格跑偏,張晉陣營化身狂野男孩
文 | 烤娛 9月17日,<披荊斬棘的哥哥>迎來最新一期的節目.二次公演結束後,歐陽靖.劉端端和陳輝3位哥哥遺憾被淘汰.由於有哥哥退出比賽,歐陽靖補位迴歸,對於很多觀眾來說也是一個很好的安 ...

湊齊“臥龍鳳雛”!張晉成新贏家,可最後的“拖油瓶”卻讓人擔心

湊齊“臥龍鳳雛”!張晉成新贏家,可最後的“拖油瓶”卻讓人擔心
<披荊斬棘的哥哥>在二宮結束之後淘汰了三位哥哥,分別是陳輝,歐陽靖和劉端端.不過歐陽靖補位迴歸,再次拿到機會,接下來便是將8個部落合併,最終形成4個新的陣營. 因為在二公舞臺上,李承鉉和張 ...

張晉,這個西裝暴徒,終於狂了

張晉,這個西裝暴徒,終於狂了
哈嘍 大家好 我是你們的囚妹兒 最近 囚妹兒也化身"追星女孩" 每週都在瘋狂期待 "哥哥們"的近況 集體社恐的"大灣區" 戚薇的快樂&quo ...

地位懸殊追得美人,靠妻子走紅,“西裝暴徒”張晉成功的秘密

地位懸殊追得美人,靠妻子走紅,“西裝暴徒”張晉成功的秘密
娛樂圈裡故事多,今天我們就來說說大器晚成,事業,幸福雙豐收的哥哥張晉. <披荊斬棘的哥哥>播出已經有一段時間了,熱度一直有增無減.除了因為哥哥們出色的表演外,更多的是他們背後吸引人的故事. ...

1950年劉冠群去重慶看望賀龍,賀龍急切詢問:你老子有飯吃嗎?

1950年劉冠群去重慶看望賀龍,賀龍急切詢問:你老子有飯吃嗎?
在新中國十大元帥之中,賀龍元帥可謂是既講原則又重情義的將軍,他認為,將"原則"高掛起來六親不認的人是虛偽的,也是不現實的.在賀龍一生堅定的無產階級革命歷程之中,他善於平衡" ...

張晉的尷尬,讓觀眾明白了《披荊斬棘的哥哥》的最大敗筆是什麼?

張晉的尷尬,讓觀眾明白了《披荊斬棘的哥哥》的最大敗筆是什麼?
去年的<乘風破浪的姐姐>讓湖南衛視嗅到了一絲靈感,今年的<披荊斬棘的哥哥>自開播以來便一直備受大家的關注,從初舞臺到最近的公演,這群哥哥們的表現真的要比現在的小鮮肉好太多,能唱 ...

武俠風出圈!張晉領銜的這首《好春光》讓你知道中華文化的快樂

武俠風出圈!張晉領銜的這首《好春光》讓你知道中華文化的快樂
中國大鼓遇到中國武術和中國舞,會產生怎樣的火花? 在<披荊斬棘的哥哥>第三次公演"等我找到你"主題演唱會上,張晉.敖犬.尹正.高瀚宇.李響別出心裁對<好春光> ...

《哥哥》張晉組國風舞韻味十足,卻不敵李承鉉組,原因在於這幾點

《哥哥》張晉組國風舞韻味十足,卻不敵李承鉉組,原因在於這幾點
新一期<披荊斬棘的哥哥>播出後,很多觀眾都說中國風怎麼在這個舞臺如此不受重視.在之前的預告中看到張晉隊伍身穿漢服,很多人表示很期待他們的表演,新一期裡他們的show也確實很仙很俠,然而他們 ...

寶生科技執行總裁張晉菘談如何邁出成功第一步(五)
今天由寶生科技執行總裁張晉菘先生和大家分享如何邁出成功第一步這個話題. 第三.換朋友. 從小到大,我們認識很多的朋友.但是我們會發現一個現象,當我們選擇了組織寶生這個行業之後,原來的朋友開始慢慢地疏遠 ...

張晉高瀚宇雙人賽能贏並非實力強,而是其他三組都犯了同樣的錯誤

張晉高瀚宇雙人賽能贏並非實力強,而是其他三組都犯了同樣的錯誤
要說今年夏天最火的綜藝節目,那絕對是<披荊斬棘的哥哥>了. 本來就有兩季<浪姐>成功地加持,再加上哥哥們的咖位和舞臺都非常炸. 這檔節目也是讓很多觀眾追到無法自拔. 毫不誇張地 ...

娛樂圈隱藏的明星夫妻,張少華孫女嫁給嘎子,看到黃渤夫妻真像

娛樂圈隱藏的明星夫妻,張少華孫女嫁給嘎子,看到黃渤夫妻真像
娛樂圈隱藏的明星夫妻,張少華孫女嫁給嘎子,看到黃渤夫妻感覺他們好有夫妻相,好像一個模子刻出來的一樣,真的好像. 娛樂圈中那些明星永遠是很多人比較熱議的地方,在熱搜上他們的話題可謂是經久不斷,.在這個圈 ...

擊敗新冠指日可待?張文宏給出最新判斷:需具備3個條件

擊敗新冠指日可待?張文宏給出最新判斷:需具備3個條件
據中國青年報報道,張文宏教授在杭州醫師大會上稱,同時具備以下三個條件新冠病毒才能被消滅:一是要研發出有永久有效的疫苗:二是新冠病毒變異不明顯:三是病毒只傳播於人類之間,不擴大傳播範圍. 自新冠疫情爆發 ...

賈靜雯修杰楷攜大女兒走機場,母女倆穿同款短款,媽媽比女兒更白

賈靜雯修杰楷攜大女兒走機場,母女倆穿同款短款,媽媽比女兒更白
點選上方關注小丸子,獲取更多有趣有料的時尚資訊和明星穿搭. 導語:女星賈靜雯是很多粉絲心中的女神,年輕時候的她明豔照人,很有靈氣,也不乏鄰家女孩的親切感. 當年在<倚天屠龍記>飾演聰慧調皮 ...

長了張矮個臉,但其實卻是高挑身材的明星們,有些絕對出乎你意料

長了張矮個臉,但其實卻是高挑身材的明星們,有些絕對出乎你意料
娛樂圈裡的眾多明星們向來是環肥燕瘦,高矮不一,各有特色,有的人光看臉就能憑直覺斷定他們是高是矮,不過有這麼一類人,單看臉或者在你的記憶中總感覺他們就是嬌小可人的型別,實際上他們卻有著模特般的高挑身材, ...