多執行緒設計模式——最後總結
這些都是根據我最近看的《Java實戰指南多執行緒程式設計(設計模式篇)》所得整理。
設計模式是什麼 (個人理解)
個人理解,設計模式就是對一些相對固定型別的問題的比較好的解決辦法,簡單來說就是程式碼版的兵法。
因為是對固定的問題的研究,所以很多設計模式的想法是經過時間的磨練,一般都是比較優秀的。
但是由於設計模式只是一個思想,而不是具體的行動,在學習的時候應該注重對思想的理解,因為具體的實現是和語言以及實現的問題相關的。
多執行緒設計模式考慮的問題
多執行緒設計模式主要是解決多執行緒設計當中的問題的,主要是以下幾個問題:
1. 不使用鎖的情況下保證執行緒安全:不可變物件模式,執行緒特有儲存模式,序列執行緒模式
2. 優雅地停止執行緒:兩階段終止模式
3. 執行緒寫作:保護性暫掛模式,消費者生產者模式
4. 提高併發性:承諾模式,主動物件模式,流水線模式
5. 提高響應性:主僕模式,半同步半非同步模式
6. 較少資源消耗:執行緒池模式,序列執行緒封閉模式
模式與模式之間的的關係
設計模式不是鼓勵的,一個設計模式往往和其他設計模式存在某些關聯:一個模式可以解決另一個模式帶來的問題;一個模式可以看做是另一個模式的特殊情況;幾個模式可以組合解決一個大問題;幾個模式都可以解決同一個問題,只是看具體情況具體選擇哪個模式。
總結
這本《Java實戰指南多執行緒程式設計(設計模式篇)》的閱讀和理解暫時告一段落,但是對於多執行緒相關知識的學習、理解和應用還有很長的一段路要走。
相關推薦
多執行緒設計模式——最後總結
這些都是根據我最近看的《Java實戰指南多執行緒程式設計(設計模式篇)》所得整理。 設計模式是什麼 (個人理解) 個人理解,設計模式就是對一些相對固定型別的問題的比較好的解決辦法,簡單來說就是程式碼版的兵法。 因為是對固定的問題的研究,所以很多設計模式
多執行緒設計模式:第六篇 - ThreadLocal和Active Object模式
一,ThreadLocal Java 中的 ThreadLocal 類給多執行緒程式設計提供了一種可以讓每個執行緒具有自己獨立空間的機制,在這個空間記憶體儲的資料是執行緒特有的,不對外共享。 &nb
多執行緒設計模式:第四篇 - Thread-Per-Message模式和Worker-Thread模式
一,Thread-Per-Message模式 Thread-Per-Message模式是說為每個請求都分配一個執行緒,由這個執行緒來執行處理。這裡包含兩個角色,請求的提交執行緒和請求的執行執行緒。
多執行緒設計模式:第三篇 - 生產者-消費者模式和讀寫鎖模式
一,生產者-消費者模式 生產者-消費者模式是比較常見的一種模式,當生產者和消費者都只有一個的時候,這種模式也被稱為 Pipe模式,即管道模式。 &nb
14.多執行緒設計模式 - Master-Worker模式
多執行緒設計模式 - Master-Worker模式 併發設計模式屬於設計優化的一部分,它對於一些常用的多執行緒結構的總結和抽象。與序列相比並行程式結構通常較為複雜,因此合理的使用並行模式在多執行緒併發中更具有意義。 1. Master-Worker模式 - Master-Worker
13.多執行緒設計模式 - Future模式
多執行緒設計模式 - Future模式 併發設計模式屬於設計優化的一部分,它對於一些常用的多執行緒結構的總結和抽象。與序列相比並行程式結構通常較為複雜,因此合理的使用並行模式在多執行緒併發中更具有意義。 1. Future Future模式是多執行緒開發中非常常見的一種設計模式,它的
多執行緒設計模式:Master-Worker模式
Master-Worker是常用的平行計算模式。它的核心思想是系統由兩類程序協作工作:Master程序和Worker程序。Master負責接收和分配任務,Worker負責處理子任務。當各個Worker子程序處理完成後,會將結果返回給Master,由Master作歸納總結。其好處就是能將一個大任務分解
Java 多執行緒設計模式之基礎概念
順序、併發與並行 順序 用於表示多個操作“依次處理”。比如把十個操作交給一個人來處理時,這個人要一個一個地按順序來處理 並行 用於標識多個操作“同時處理”。比如十個操作分給兩個人處理時,這兩個人就會並行來處理。 併發 相對於順序和並行來說比較抽象,用於表示“將一個
圖解java多執行緒設計模式
序章1 Java執行緒 何謂執行緒 文中給出的解釋是:正在執行程式的主體 執行緒的啟動 新執行緒的啟動一定是呼叫start()方法,該方法主要是執行兩步操作 啟動新執行緒 呼叫新執行緒的run()方法 這裡需要注意: public class Test(
圖解java多執行緒設計模式-第二章 Immutable模式
以下內容是我在閱讀《圖解Java多執行緒設計模式》一書中的總結和思考 本章配圖文字是:想破壞也破壞不了。 定義 例項物件的內部狀態不會發生變化,也就是說不提供對外改變屬性的方法(除了建立物件時初始化的方法外),那麼這個類就是Immutable的,無需任何互斥操作都可
多執行緒設計模式Future、Master-Worker和生產者-消費者模型
並行設計模式屬於設計優化的一部分,它是對一些常用的多執行緒結構的總結和抽象。與序列結構相比,並行程式的結構通常更為複雜。因此合理的使用並行模式在多執行緒開發中更具有意義,在這裡主要介紹Future、Master-Worker和生產者-消費者模型。Future模式Future模
Java多執行緒設計模式之執行緒池模式
前序: Thread-Per-Message Pattern,是一種對於每個命令或請求,都分配一個執行緒,由這個執行緒執行工作。它將“委託訊息的一端”和“執行訊息的一端”用兩個不同的執行緒來實現。該執行緒模式主要包括三個部分: 1,Request參
多執行緒設計模式——Guarded Suspension(保護性暫掛模式)
這些都是根據我最近看的《Java實戰指南多執行緒程式設計(設計模式篇)》所得整理。 模式名稱 Guarded Suspension(保護性暫掛模式) 模式面對的問題 多執行緒程式設計中,往往將一個任務分解為不同的部分,將其交由不同的執行緒來執行,這些
java多執行緒設計模式
1 I/O處理比較花費時間,故把執行I/O處理和非IO處理的執行緒分開。CPU執行速度很快、而記憶體的寫入、讀取很慢,所以有關CPU和記憶體互動會降低指令的速度。 2 start方法執行有2個步驟啟動新的執行緒執行new物件的run方法 3 所有執行緒結束,程式結束。 主
多執行緒設計模式——Producer-Consumer生產者消費者模式
這些都是根據我最近看的《Java實戰指南多執行緒程式設計(設計模式篇)》所得整理。 模式名稱 Producer-Consumer生產者消費者模式 模式面對的問題 有的執行緒的結果是另外一些執行緒的原料,也就是說,一些執行緒是生產者,另外一些執行緒
java多執行緒設計模式之Guarded Suspension
想象一個場景,你在排隊領軍訓的裝備,當你排隊到視窗的時候,工作人員對你說,等一下,讓我叫後勤先去倉庫取下裝備再給你,於是你等到工作人員取回裝備才能領走裝備。 抽象為一個java程式模型:你是一個執行緒
圖解java多執行緒設計模式學習第五章Producer-Consumer模式
生產者消費者模式,生產者安全地將資料交給消費者。雖然僅是這樣看似簡單的操作,但當生產者和消費者以不同的執行緒執行時,兩者之間的處理速度差異便會引起問題。例如,消費者想要獲取資料,可資料還沒有生成,或者生產者想要交付資料,而消費者的狀態還無法接收資料等。一般來說,在該模式中,生
圖解java多執行緒設計模式學習第六章Read-Write Lock模式
學生們正在一起看老師在黑板上寫的板書。這時,老師想插掉板書,再寫新的內容。而學生們說道:“”老師,我們還沒看完了,請先不要摖掉“”。於是,老師會等待大家都看完。當執行緒“”讀取“”例項的狀態時,例項的狀態不會發生變化。例項的狀態僅線上程執行“”寫入“”操作時才會發生變化。從例
圖解Java多執行緒設計模式 序章1 Java執行緒
【Thread類的run方法和start方法】 JAVA程式執行時,最開始執行的只能是主執行緒。所以必須在程式中啟動新執行緒。 啟動執行緒時,要使用如下類(一般稱為Thread類) public class MyThread extends Thread
Java 多執行緒設計模式之Guarded Suspension
Guarded Suspension 模式核心是一個受保護的方法(Guarded Method)。該方法執行其所要真正執行的操作時需要滿足特定的條件(Predicate, 保護條件)。類似與 wait/notify, 當條件不滿足時,執行受保護的執行緒會被掛起進