欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Java中volatile和synchronized區(qū)別是什么?

不懂Java中volatile和synchronized區(qū)別是什么??其實想解決這個問題也不難,下面讓小編帶著大家一起學習怎么去解決,希望大家閱讀完這篇文章后大所收獲。

成都創(chuàng)新互聯公司專注于宛城企業(yè)網站建設,自適應網站建設,商城開發(fā)。宛城網站建設公司,為宛城等地區(qū)提供建站服務。全流程按需求定制制作,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯公司專業(yè)和態(tài)度為您提供的服務

volatile是變量修飾符,而synchronized則是作用于一段代碼或方法;如下三句get代碼:

int i1;
int geti1() {return i1;}

volatile int i2;
int geti2() {return i2;}

int i3;
synchronized int geti3() {return i3;}

geti1() 得到存儲在當前線程中i1的數值。多個線程有多個i1變量拷貝,而且這些i1之間可以相互不同。換句話說,另一個線程可能已經改變了它線程內的i1值,而這個值可以和當前線程中的i1值不相同。 在Java內存模型中,有main memory(主內存區(qū)域),這里存放了變量目前的“準確值”,每個線程也有自己的memory(例如寄存器)。為了性能,一個線程會在自己的memory中保存要訪問的變量的副本。這樣就會出現同一個變量在某個瞬間,在一個線程的memory中的值可能與另外一個線程memory的值,或者main memory的值不一致的情況。因此實際上存在一種可能:main memory的值i1值是1,線程1里的i1是2,線程2里的i1值是3,這在線程1和線程2都改變了他們各自的i1值,而且這個改變還沒來得及傳給main memory 或其他線程時就會發(fā)生。

geti2() 得到的是main memory的i2數值。一個變量聲明為volatile,就意味著這個變量是隨時會被其他線程修改的,因此不能將它cache在線程memory中。換句話說,一個變量經過volatile修飾后在所有線程中必須是同步的,任何線程中改變了它的值,所有其他線程立即獲得了相同的值。所以,volatile修飾的變量存取時比一般變量消耗的資源要多一點,因為線程有它自己的變量拷貝更為高效。

geti3()方法被synchronized修飾,用synchronized來修飾一個方法或者一個貸款的時候,能夠保證在同一時刻最多只有一個線程執(zhí)行該段代碼。既然volatile關鍵字已經實現了線程間數據同步,又要synchronized干嘛呢?當兩個并發(fā)線程訪問同一個對象object中的這個synchronized(this)同步貸款時,一個時間內只能有一個線程得到執(zhí)行。另一個線程必須等待當前線程執(zhí)行完這個代碼塊才能執(zhí)行該代碼塊。然而,當一個線程訪問object的一個synchronized(this)同步代碼塊時,另一個線程仍然可以訪問該object中的非synchronized(this)同步代碼塊。尤其關鍵的是,當一個線程訪問object的一個synchronized(this)同步代碼塊時候,其他線程對object中所有其他synchronized(this)同步代碼塊的訪問將被阻塞。當一個線程訪問object的一個synchronized(this)同步代碼塊時,它就獲得了這個object的對象鎖,結果,其他線程對該對象所有同步代碼部分的訪問都被暫時阻塞。

區(qū)別:

一,volatile是變量修飾符,而synchronized則作用于一段代碼或者方法。

二,volatile只是在線程內存和main memory(主內存)間同步某個變量的值;而synchronized通過鎖定和解鎖某個監(jiān)視器同步所有變量的值。顯然synchronized要比volatile消耗更多資源。

感謝你能夠認真閱讀完這篇文章,希望小編分享Java中volatile和synchronized區(qū)別是什么?內容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯,關注創(chuàng)新互聯行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯,詳細的解決方法等著你來學習!

標題名稱:Java中volatile和synchronized區(qū)別是什么?
瀏覽路徑:http://chinadenli.net/article42/gpcdec.html

成都網站建設公司_創(chuàng)新互聯,為您提供營銷型網站建設、軟件開發(fā)App設計、網站維護、App開發(fā)、動態(tài)網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

微信小程序開發(fā)
国产情侣激情在线对白| 成人午夜在线视频观看| 厕所偷拍一区二区三区视频| 午夜福利视频偷拍91| 亚洲五月婷婷中文字幕| 黄色美女日本的美女日人| 小草少妇视频免费看视频| 午夜亚洲少妇福利诱惑| 色偷偷亚洲女人天堂观看| 国产亚洲午夜高清国产拍精品| 国产伦精品一一区二区三区高清版 | 伊人网免费在线观看高清版 | 青草草在线视频免费视频| 五月激情五月天综合网| 免费大片黄在线观看国语| 黄色国产自拍在线观看| 亚洲精品国产主播一区| 自拍偷女厕所拍偷区亚洲综合| 欧美午夜一级特黄大片| 日本乱论一区二区三区 | 国产又粗又猛又爽又黄| 九九热精品视频免费观看| 国产永久免费高清在线精品| 国产精品午夜福利免费阅读| 中文字幕日产乱码一区二区| 日韩成人中文字幕在线一区 | 亚洲专区中文字幕在线| 国产日韩欧美专区一区| 色综合久久超碰色婷婷| 欧美午夜色视频国产精品| 欧美成人高清在线播放| 久久精品亚洲精品国产欧美| 欧美一区二区在线日韩| 国产老熟女乱子人伦视频| 国产免费无遮挡精品视频| 午夜视频成人在线免费| 成人国产激情在线视频| 亚洲视频偷拍福利来袭| 伊人色综合久久伊人婷婷| 日本午夜免费观看视频| 亚洲一二三四区免费视频|