设计模式笔记
SZ laoluo
大数据处理,Spring组件,分布式架构,微服务
展开
-
Worker Thread 模式
每個執行緒處理一個請求,每次執行緒執行完請求後,再次嘗試取得下一個請求並執行,這是Worker Thread的基本概念,對於一些需要冗長計算或要在背景執行的請求,可以採用Worker Thread。 在 Thread-Per-Message 模式 中,其實已經有點Worker Thread的概念,在Service物件接收到資料後,以匿名方式建立執行緒來處理資料,那個建立的執行緒就是Worke转载 2012-02-04 14:34:18 · 1072 阅读 · 0 评论 -
Thread pool模式
在 Thread-Per-Message 模式 中,每次請求來到,就建立一個新的執行緒,用完就不再使用,然後執行緒的建立需要系統資源,對於一個接受許多請求的情況,不斷的建立新執行緒,會導致系統效能的降低。 可以的話,若能重複使用所建立的執行緒,而不是用完就丟,可以有效的重複利用資源。在 Worker Thread 模式 的範例中,預先建立好執行緒,當請求佇列有新請求時,通知等待的執行转载 2012-02-04 14:34:49 · 1001 阅读 · 0 评论 -
Read-Write-Lock 模式
如果有一個資料檔有可能同時間會有許多客戶端對它進行讀取與寫入的動作,則必須注意資料的同步問題,像是兩個寫入者進行寫入時,後一個寫入者的資料會有可 能將次一個寫入者的資料覆蓋掉;而有時您希望讀取者看到的是最新的資料,如果在讀取的時候,有寫入者想要對資料進行寫入,則最好等待讀取者讀取完畢,相反 的如果在寫入時有客戶想要讀取資料,則最好等待,以確保讀出來的資料是最新的資料。 讀取寫入的同步問題向來转载 2012-02-04 14:38:00 · 868 阅读 · 0 评论 -
Thread-Per-Message 模式
如果您現在設計一個Service元件,可以接受客戶端的資料並交給一個Helper元件處理,假設資料處理很複雜,也就是Helper處理會需要一段時間,如果您這麼設計: class Helper { void process(int data) { System.out.println("開始處理 " + data); try {转载 2012-02-04 14:35:44 · 3215 阅读 · 0 评论