全的主要來源於JMM的設計,主要集中在主內存和線程的工做內存而致使的內存可見性問題,以及重排序致使的問題,進一步知道了happens-before規則。線程運行時擁有本身的棧空間,會在本身的棧空間運行,若是多線程間沒有共享的數據也就是說多線程間並無協做完成一件事情,那麼,多線程就不能發揮優點,不能帶來巨大的價值。那麼共享數據的線程安全問題怎樣處理?很天然而然的想法就是每個線程依次去讀寫這個共享變量,這樣就不會有任何數據安全的問題,由於每一個線程所操做的都是當前最新的版本數據。那麼,在java關鍵字synchronized就具備使每一個線程依次排隊操做共享變量的功能。很顯然,這種同步機制效率很低,但synchronized是其餘併發容器實現的基礎,對它的理解也會大大提高對併發編程的感受,從功利的角度來講,這也是面試高頻的考點。好了,下面,就來具體說說這個關鍵字java