java高併發設計(一)--概念

java高併發的核心,要了解並熟悉java的內存模型,並涉及相關的資源臨界值。java

java的內存模型圍繞多線的技術要點:原子性,可見性,有序性。安全

原子性:原子性是指整個操做過的不可中斷性,明確的說就是線程在執行過程當中是順序執行的,一旦開始操做將不受其餘線程的干擾。好比對已經全局的變量進行復制的操做,每一個線程均可以對其進行從新設值的操做,可是在多線程執行中,沒有安全機制的狀況下,不能保證其操做的原子性,有可能最終的結果不是你想看到的。因此最早的設置就是原子性。多線程

可見性:可見性就是一個線程修改了某一個共享的變量或者資源,其餘線程可以當即知道這個修改,能夠參考java中的volatile關鍵字的效果。若是沒有安全機制,一個全局變量的設置,在多線程執行下,一個線程對變量的修改對其餘線程多是不可見的,由於在多線程併發操做狀況下,兩個線程會同時修改該變量。併發

有序性:在單線程執行下,全部的代碼操做計劃都是順序執行的,前面的代碼老是優先執行。可是在多線程中,程序的執行順序有可能就會出現混亂。高併發

相關文章
相關標籤/搜索