設計模式-單例模式之懶漢式-多執行緒
package cn.itcast_03;
/*
* 單例模式:
* 餓漢式:類一載入就建立物件
* 懶漢式:用的時候,才去建立物件
*
* 面試題:單例模式的思想是什麼?請寫一個程式碼體現。
*
* 開發:餓漢式(是不會出問題的單例模式)
* 面試:懶漢式(可能會出問題的單例模式)
* 思想:
* A:懶載入(延遲載入),用的時候才去載入
* B:執行緒安全問題
* a:是否多執行緒環境 是
* b:是否有共享資料 是
* c:是否有多條語句操作共享資料 是
*/
public class Teacher {
private Teacher() {
}
private static Teacher t = null;
public synchronized static Teacher getTeacher() {
// t1,t2,t3
if (t == null) {
//t1,t2,t3
t = new Teacher();
}
return t;
}
}
package cn.itcast_03;
public class TeacherDemo {
public static void main(String[] args) {
Teacher t1 = Teacher.getTeacher();
Teacher t2 = Teacher.getTeacher();
System.out.println(t1 == t2); // true
System.out.println(t1); // cn.itcast_03.Teacher@175078b
System.out.println(t2); // cn.itcast_03.Teacher@175078b
}
}
相關文章
- 設計模式:單例模式 (關於餓漢式和懶漢式)設計模式單例
- java設計模式之單例模式你真的會了嗎?(懶漢式篇)Java設計模式單例
- 【java】單例設計模式——餓漢式和懶漢式、Runtime、TimerJava單例設計模式
- 多執行緒設計模式之Worker Thread模式執行緒設計模式thread
- Java多執行緒程式設計筆記10:單例模式Java執行緒程式設計筆記單例模式
- java單例模式懶漢和餓漢Java單例模式
- 詳談單例、餓漢、和懶漢模式單例模式
- synchronized 同步執行緒 單例設計模式+double checkingsynchronized執行緒單例設計模式
- scala:分別使用懶漢式和餓漢式實現單例模式單例模式
- 【設計模式】實現執行緒安全單例模式的五種方式設計模式執行緒單例
- 設計模式之單例模式設計模式單例
- 設計模式之---單例模式設計模式單例
- 設計模式之☞單例模式設計模式單例
- 設計模式之單例設計模式設計模式單例
- Java 多執行緒設計模式之 Single Threades ExecutionJava執行緒設計模式thread
- Java 多執行緒設計模式之基礎概念Java執行緒設計模式
- 01 設計模式之單例模式設計模式單例
- js設計模式之單例模式JS設計模式單例
- Javascript 設計模式之單例模式JavaScript設計模式單例
- PHP 設計模式之單例模式PHP設計模式單例
- PHP設計模式之單例模式PHP設計模式單例
- Java設計模式之單例模式Java設計模式單例
- 設計模式(一)之單例模式設計模式單例
- Javascript設計模式之單例模式JavaScript設計模式單例
- PHP 設計模式之——單例模式PHP設計模式單例
- golang設計模式之單例模式Golang設計模式單例
- Android設計模式之單例模式Android設計模式單例
- 設計模式:單例模式介紹及8種寫法(餓漢式、懶漢式、Double-Check、靜態內部類、列舉)設計模式單例
- 別再用懶漢模式了——從JVM的角度看單例模式模式JVM單例
- 設計模式之單例設計模式單例
- Java設計模式系列之單例設計模式Java設計模式單例
- 設計模式開門之單例模式設計模式單例
- 設計模式之單例模式(Singleton Pattern)設計模式單例
- 設計模式之單例模式詳解設計模式單例
- 理解設計模式之單例模式(Javascript)設計模式單例JavaScript
- 設計模式學習之單例模式設計模式單例
- C#設計模式之單例模式C#設計模式單例
- Kotlin 設計模式系列之單例模式Kotlin設計模式單例
- 懶漢模式和餓漢模式模式