原创 線程:併發中可能存在的問題

併發中可能存在的問題1. 併發編程三大特性2. 原子性競態條件3. 可見性緩存不一致性CPU緩存模型Volatile關鍵字4.有序性指令重排實例5. 問題根源—JMM模型JMM概述Happens-before規則6. 死鎖死鎖產生

原创 鎖:AbstractQueuedSynchronizer源碼解析(下)

AbstractQueuedSynchronizer源碼解析1.釋放鎖釋放排它鎖—release方法unparkSuccessor方法共享鎖釋放—releaseShared方法doReleaseShared方法2. 條件隊列重要方

原创 MySQL事務(2):事務控制

事務控制事務控制語句1)常用事務語句2)差異辨析3)注意事項已正確執行語句不會自動回滾rollback to savepoint並非結束事務隱式提交SQL語句分佈式事務1)XA事務構成2)XA事務語法事務控制不良習慣1)循環中提交

原创 線程:Thread類源碼解析(下)

Thread類源碼解析4.Thread APIsleep方法yield方法setPriority方法interrupt方法*1)中斷非阻塞線程2)中斷阻塞線程Join方法 4.Thread API sleep方法 sleep 方法

原创 隊列:LinkedBlockingQueue源碼解析

LinkedBlockingQueue源碼解析1.整體架構Queue接口和BlockingQueue接口類註釋內部結構初始化2.源碼解析入隊和出隊操作1) enqueue方法2) dequeue方法新增節點操作1) add方法2)

原创 結構型設計模式(1):適配器模式

適配器模式1.組成角色2.代碼實現類適配器對象適配器3.優缺點小結 適配器的概念可以通過下圖進行說明, 生活中最常見的例子就是電壓轉換插頭,通過放置在電源與充電設備之間,能夠使得兩個原本不能一同使用的物品配合使用。 使用適配器模

原创 線程:Thread類源碼解析(上)

Thread類源碼解析1.基本架構類註釋任務狀態1)NEW2)RUNNABLE3)RUNNING4)BLOCKED5)TERMINATED6)WAITING和TIMED_WAITING優先級守護線程ClassLoader2. 多線

原创 創建型設計模式(2):單例模式

單例模式1.代碼實現懶漢式實現餓漢式實現2.單例模式優缺點3.單例模式使用場景 單例模式的使用場景, 想確保任何情況下都絕對只有一個實例 在程序上表現出只存在一個實例 依據上面的使用場景,得出單例模式的構建, 只有一個實例

原创 線程:併發問題的解決

併發問題的解決1. 實現原子性Atomic1)Atomic概述2)Atomic源碼分析構造方法increamentAndGet方法CAS算法1)CAS與synchronized差異2)CAS算法缺點2. 實現可見性和有序性vola

原创 MySQL鎖(1):MySQL全局鎖和表鎖

全局鎖與表鎖鎖的概念數據準備全局鎖表鎖和元數據鎖1)表鎖表鎖使用場景及分類表鎖上鎖命令表讀鎖使用表寫鎖使用表鎖使用總結2)元數據鎖(MDL)元數據鎖相關概念元數據鎖阻塞示例online DDL插隊現象 鎖的概念 鎖用於協調多個客戶

原创 Java8新特性:lambda表達式(下)

lambda表達式3.lambda表達式高級拓展方法引用1)靜態方法引用的使用2)實例方法引用的使用3)構造方法引用的使用Stream1)概述及演示2)Stream API3)Stream對象對集合處理由批量數據得到Stream對

原创 線程:Future、ExecutorService源碼解析

Future、ExecutorService源碼解析1.整體架構2.Callable接口3.FutureTask類Future接口RunnableFuture接口統一Callable和Runnable1)FutureTask類定義

原创 Java8新特性:lambda表達式(上)

lambda表達式1.lambda表達式概述傳統實現方式lambda表達式實現2.函數式接口概念及特點定義函數式接口示例默認接口方法和靜態接口方法1)默認接口方法2)靜態接口方法繼承自Object類的方法lambda表達式和函數式

原创 MySQL鎖(2):行鎖

行鎖事務隔離級別InnoDB行鎖模式1)共享鎖和排它鎖2)意向鎖鎖問題1)髒讀2)幻讀(不可重複讀)3)丟失更新InnoDB行鎖算法阻塞RC級別下行鎖實驗1)通過非索引字段查詢2)通過唯一索引查詢3)通過普通索引查詢RC級別下記錄

原创 MySQL事務(1):事務實現

事務實現事務分類1)扁平事務2)帶有保存點的扁平事務3)鏈事務4)嵌套事務5)分佈式事務redo log1) redo log構成redo log buffer和redo log filelog blocklog groupred