對象就是操作和數(shù)據(jù)的封裝搬味。對象所包含的數(shù)據(jù)被稱為該對象的狀態(tài),它包括存儲在實例變量或者靜態(tài)變量之中的數(shù)據(jù)萍聊。一個對象的狀態(tài)也可能包含該對象引用的其他對象的實例或者靜態(tài)變量中的數(shù)據(jù)悦析。相應(yīng)地,實例變量强戴、靜態(tài)變量也被稱為狀態(tài)變量。如果一個類的同一個實例被多個線程共享并不會使這些線程存在共享狀態(tài)预烙,那么這個類及其任意一個實例就被稱為無狀態(tài)對象道媚。反之,如果一個類的同一個實例被多個線程共享谴分,會使這些線程存在共享狀態(tài)镀脂,那么這個類及其任意一個實例就被稱為有狀態(tài)對象。無狀態(tài)對象不含任何實例變量沙兰,且不含任何靜態(tài)變量或者其包含的靜態(tài)變量都是只讀的,有狀態(tài)對象又可以分為狀態(tài)可變對象和狀態(tài)不可變對象僧凰。所謂狀態(tài)可變就是,對象在其生命周期中伪节,其狀態(tài)變量的值可以發(fā)送變化绩鸣。
我們知道線程安全問題產(chǎn)生的前提是多個線程之間存在共享數(shù)據(jù)。因此化借,實現(xiàn)線程安全的一種自然的方法就是避免在多個線程之間共享數(shù)據(jù)捡多。使用無狀態(tài)對象就是這樣一種自然的辦法:一個線程執(zhí)行無狀態(tài)對象的任意一個方法來完成某個計算的時候,該計算的瞬時狀態(tài)僅體現(xiàn)在局部變量和(或)只有當(dāng)前執(zhí)行線程能夠訪問的對象的狀態(tài)上蒜焊。因此科贬,一個線程執(zhí)行無狀態(tài)對象的任何方法都不會對該無狀態(tài)對象的其他線程產(chǎn)生任何干擾作用。所以榜掌,無狀態(tài)對象具有固定的線程安全性憎账,它可以被多個線程共享,而這些線程在執(zhí)行該對象的任何方法時都無須使用同步機制鼠哥。
無狀態(tài)對象
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門辕翰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來夺衍,“玉大人,你說我怎么就攤上這事喜命」瞪常” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵壁榕,是天一觀的道長尝胆。 經(jīng)常有香客問我,道長护桦,這世上最難降的妖魔是什么含衔? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮二庵,結(jié)果婚禮上贪染,老公的妹妹穿的比我還像新娘。我一直安慰自己催享,他們只是感情好杭隙,可當(dāng)我...
- 文/花漫 我一把揭開白布因妙。 她就那樣靜靜地躺著痰憎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪攀涵。 梳的紋絲不亂的頭發(fā)上铣耘,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吊骤!你這毒婦竟也來了缎岗?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布地熄,位于F島的核電站,受9級特大地震影響芯杀,放射性物質(zhì)發(fā)生泄漏端考。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一揭厚、第九天 我趴在偏房一處隱蔽的房頂上張望却特。 院中可真熱鬧,春花似錦筛圆、人聲如沸裂明。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽闽晦。三九已至,卻和暖如春提岔,著一層夾襖步出監(jiān)牢的瞬間仙蛉,已是汗流浹背。 一陣腳步聲響...