java多線程系列20-單例模式

單例模式有兩種立即加載和延遲加載。立即加載這種不多說,主要說說延遲加載。 平時在很多地方的延遲加載都用了雙重檢查: 這種實際在所線程下並不是線程安全的,主要問題在於創建一個對象實際上大致可以分爲三步: 1.分配對象內存空間 2.初始化對象 3.將對象引用指向剛分配的內存地址 這裏編譯器可能對步驟2和和步驟3對象重排序,導致其他線程看到未初始化的字段屬性。這裏有兩種結局方案: (1)將變量設爲vol
相關文章
相關標籤/搜索