多執行緒下的單例(靜態類單例)

2021-09-05 01:21:51 字數 1833 閱讀 5763

定義乙個單例model; 

package com.shirt.test;

/** * @author xiaxt

* @date 2018/12/21.

*/public class runmodel

private runmodel setisrunning(boolean b)

private runmodel setmessage(string msg)

private runmodel setdata(object data)

private static class running

/*** 執行緒執行結束

* @return

*/public static runmodel runover()

/*** 執行緒開始執行

* @return

*/public static runmodel running()

public static runmodel running(string msg)

public static runmodel running(string msg, object o)

/*** 獲取定時任務執行狀態isrunning

* @return

*/public static boolean isrunning()

/*** 獲取定時任務執行資訊message

* @return

*/public static string getmessage()

/*** 獲取定時任務執行資料data

* @return

*/public static object getdata()

/*** 獲取例項化物件

* @return

*/public static runmodel getinstance()

}

main函式呼叫測試 

package com.shirt.test;

/** * @author xiaxt

* @date 2018/8/9.

*/public class maintest catch (interruptedexception e)

}}class threada implements runnable

runmodel.running("執行緒a執行中");

system.out.println("執行緒a開始執行");

try catch (interruptedexception e)

runmodel.runover();

system.out.println("執行緒a執行結束");

}}class threadb implements runnable

runmodel.running("執行緒b執行中");

system.out.println("執行緒b開始執行");

try catch (interruptedexception e)

runmodel.runover();

system.out.println("執行緒b執行結束");

}}class threadc implements runnable

runmodel.running("執行緒c執行中");

system.out.println("執行緒c開始執行");

try catch (interruptedexception e)

runmodel.runover();

system.out.println("執行緒c執行結束");

}}

多執行緒下的單例

1多執行緒安全單例模式一 不使用同步鎖 1 1 public classsingleton 4 4 private staticsingleton singleton 5 5 6 6 public staticsingleton getinstance 7 7 12 12 returnsinglet...

多執行緒下的單例模式

單例模式分為兩種 懶漢單例模式和餓漢式單例模式 public class singleton private static singleton single null public static singleton getinstance return single 在單執行緒中,這樣寫,不會存在任...

多執行緒下的單例模式

在多執行緒下的singleton模式是有弊端的,但如何解決呢?辦法是使用lock機制。今天研究的lock機制,並且順便了解了些關於多執行緒的cpu層面的機制。在單個cpu的環境下,在系統的某一時間下cpu只能做一件事情,乙個時間片 slice 這個是cpu執行最小單位。在系統中有多個程序看起來好像是...