本篇文章為大家展示了如何深入理解Java多線程與并發(fā)框中的volatile關(guān)鍵字,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
成都創(chuàng)新互聯(lián)公司服務(wù)緊隨時代發(fā)展步伐,進行技術(shù)革新和技術(shù)進步,經(jīng)過10多年的發(fā)展和積累,已經(jīng)匯集了一批資深網(wǎng)站策劃師、設(shè)計師、專業(yè)的網(wǎng)站實施團隊以及高素質(zhì)售后服務(wù)人員,并且完全形成了一套成熟的業(yè)務(wù)流程,能夠完全依照客戶要求對網(wǎng)站進行成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、建設(shè)、維護、更新和改版,實現(xiàn)客戶網(wǎng)站對外宣傳展示的首要目的,并為客戶企業(yè)品牌互聯(lián)網(wǎng)化提供全面的解決方案。
把對 volatile變量的單個讀/寫,看成是使用 同一個監(jiān)視器鎖 對這些單個讀/寫操作做了 同步。 原理:插入內(nèi)存屏蔽指令,禁止一定條件下的重排序。
volatile 是輕量級的同步機制
舉例說明:
public class Assignment { int value = 1; /** * 加法 */ public void assign1() { value = 1; // 單操作 } public void assign2() { value = 2; // 單操作 } }
volatile禁止指令重排序也有一些規(guī)則,簡單列舉一下**(重點是存在多操作)**:
當(dāng)?shù)诙€操作是voaltile寫時,無論第一個操作是什么,都不能進行重排序
當(dāng)?shù)匾粋€操作是volatile讀時,不管第二個操作是什么,都不能進行重排序
當(dāng)?shù)谝粋€操作是volatile寫時,第二個操作是volatile讀時,不能進行重排序
上述內(nèi)容就是如何深入理解Java多線程與并發(fā)框中的volatile關(guān)鍵字,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。