中午吃過飯回來閒著沒事,忽然想起多執行緒,開啟網頁隨便看了下,發現多執行緒的實現實際就是用模板方法、裝飾者兩種模式設計的。
模板方法模式定義:在乙個類中定義乙個演算法,但將此演算法的某些細節留到子類中去實現.換句話說,基類是乙個抽象類,那麼你就是在使用一種簡單形式的摸板模式。
裝飾者模式定義:裝飾者模式可以動態地給乙個物件增加其他職責。就擴充套件物件功能來說,裝飾者模式比生成子類更為靈活。
建立多執行緒有兩種方式,大家耳熟能詳的。
1.繼承類thread,呼叫thread類的start方法。thread類中就定義了乙個run方法留給子類去實現,而start方法又是呼叫run方法,典型的模板方法模式。
2.實現runnable介面,實現類把此介面的實現類當做thread的構造引數來新建thread類,然後呼叫start方法開啟執行緒。檢視thread類也是實現的runnable介面,也就是說thread類是我們自己實現runnable介面類的裝飾者,只不過thread類沒有直接呼叫共同實現的run方法,還是呼叫的start方法來觸發執行緒啟動。也算是兩種模式的混合使用。
皮毛而已,天天總結,天天向上。
多執行緒設計模式
呼叫類 public class main 介面 public inte ce data 包裝類 public class futureclient start return futuredata 真實資料處理類 public class realdata implements data catch...
多執行緒設計模式
所謂 single threaded execution 即 以乙個執行緒執行 該模式用於設定限制,以確保同一時間內只讓乙個執行緒執行處理。immutable模式中存在著確保例項狀態不發生改變的類 immutable類 在訪問這些例項時並不需要執行耗時的互斥處理,因此若能巧妙利用該模式,定能提高程式...
多執行緒中的設計模式(Future模式)
future模式 給你個引用 你在通過這個引用去獲取資料。給你個鑰匙,自己去拿 其中客戶端實際使用時,採用執行緒等待形式,當other call 執行完成後,喚醒客戶端請求。futureclient public class futureclient start return futuredata ...