前文:
單線程——多線程的開啟——線程鎖——線程同步工具——手寫連接池——連接池工具類。
一、線程
1.線程的概念
2.線程與進程的關(guān)系
3.定義:
區(qū)別:如上!??!
4.wait()和sleep()
5.線程的狀態(tài)及其他API
二、線程鎖
線程并發(fā)同步時,引入了鎖機制。
- 普通鎖機制:synchronized 修飾代碼塊與volatile 修飾成員變量
- Lock
!!共同點:都是從外面創(chuàng)建鎖類、再把鎖傳到線程里對變量對象賦值。
(1)重入鎖
(2)讀寫分離鎖
區(qū)別:
三、線程同步工具類
??!共同點:都是從外面創(chuàng)建工具類、再把工具類的參數(shù)傳到線程里面執(zhí)行。
- CountDowmLatch閉鎖:等待所有線程執(zhí)行完
- CyclicBarrier柵欄:等待所有線程達到后開啟
- Exchanger交換機:交流數(shù)據(jù)
- 信號量
(1)概念
(2)應(yīng)用場景一
(3)應(yīng)用場景二
四、線程池
- 為什么使用線程池
- 線程池的核心隊列
阻塞式隊列:只用于線程對象,主要用于引出線程池
- 手動創(chuàng)建線程池
- Executors工具創(chuàng)建線程
核心線程:0(臨時線程)、1(隊列)、N(隊列)
定時線程: