原创 【多線程】4.Java中鎖對象Lock的使用

ReentrantLock 除了使用synchronized關鍵字來實現線程之間同步互斥,在JDK1.5中新增了ReentrantLock類也能達到同樣的效果,並且在擴展功能上也更加強大,例如嗅探鎖定、多路分支通知等功能,使用上

原创 【多線程】5.多線程零散知識點(單例、線程狀態、線程組、SimpleDateFormat)

單例模式 立即加載(餓漢模式) 立即加載就是使用類的時候已經將對象創建完畢,常見的實現辦法就是聲明的時候直接new實例化。 // 加載類時候創建對象:靜態變量 public class A { private static A

原创 【多線程】3.Java多線程環境中線程間的通信

等待/通知機制 生活舉例 廚師通過傳菜鈴通知服務員上菜 出租車等待乘客呼叫 不通過等待/通知機制的實現方式 在沒有等待、通知機制的時候,我們會使用while循環來輪詢希望的條件是否滿足,例如: // ThreadA publ

原创 【多線程】1.Thread類的核心方法

Thread類的核心方法 JDK實現多線程編程的方式 繼承Thread類 實現Runnable接口 Thread的主要方法 currentThread() 返回代碼段正在被哪個線程調用的信息 isAlive()

原创 【多線程】2.同步方法、變量的併發訪問

變量的線程安全 方法內聲明的變量是線程安全的,因爲每個線程各自有這個變量的一個副本,數據不共享; 成員變量(對象級變量)是非線程安全的,因爲可能存在多個線程爭相修改的情況,多線程爭搶即不安全; synchronized使用的鎖

原创 【多線程】Thread類的核心方法

Thread類的核心方法 JDK實現多線程編程的方式 繼承Thread類 實現Runnable接口 Thread的主要方法 currentThread() 返回代碼段正在被哪個線程調用的信息 isAlive()