更新時間:2019-12-20 16:23:57 來源:動力節點 瀏覽2602次
并發編程JMM該如何學習?作為當前市場上的主流編程語言,Java一直深受人們青睞,很多決定入行IT開發的人都會首擇Java。為了能夠快速的掌握Java理論知識并積累相應的項目經驗,越來越多的人選擇專業的學習,接下來小編就給大家分享一下并發編程JMM相關知識。
Java線程之間的通信由Java內存模型(JMM)控制,JMM決定一個線程對共享變量的寫入何時對另一個線程可見。
Java內存模型規定了所有的變量都存儲在主內存中,每個線程擁有自己的工作內存,工作內存中保存了被該線程使用的變量的主內存副本拷貝,線程只能操作自己工作內存的變量副本,操作完變量后會更新到主內存,通過主內存來完成與其他線程間變量值的傳遞。
在Java多線程開發中,遵循著三個基本特性,分別是原子性、可見性和有序性,而Java的內存模型正是圍繞著在并發過程中如何處理這三個特征建立的。
原子性
原子性是指操作是原子性的、不可中斷的。比如:String s="abc";這個操作是直接賦值,是原子性操作。再比如:i++;當執行i++時,需要先獲取i的值,然后再執行i+1,相當于包含了兩個操作,所以不是原子性。
可見性
可見性是指共享數據的時候,一個線程修改了數據,其他線程知道數據被修改,會重新讀取最新的主存的數據。
有序性
是指代碼執行的有序性,對于一個線程執行的代碼,我們可以認為代碼是依次執行的,但并發中可能就會出現亂序,因為代碼有可能發生指令重排序(Instruction Reorder),重排后的指令與原指令的順序未必一致。編譯器能夠自由的以優化的名義去改變指令順序,在特定的環境下,處理器可能會次序顛倒的執行指令。
注意:Java內存模型不同于Java內存結構,不要將二者概念混淆。Java內存模型是為了解決各線程之間的通信所抽象出來的概念,Java內存結構則是Java中的數據存儲形式,也就是經常提到的堆內存、棧內存等。
Java開發的前景是毋庸置疑的,如果想進入這個“吸金”的領域,如果你想了解更多Java編程方面的技術,選擇專業的學習方式是明智之舉。
以上就是動力節點Java培訓機構小編介紹的“如何學習Java,JMM并發編程”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
Java全套自學資料
Java自學視頻教程(免費下載學習):http://www.dabaquan.cn/video.html
Java技術教程:http://www.dabaquan.cn/tutorial/
相關文章
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習