摘要:一定義模式是指每個一個線程,可以理解成消息命令或者請求。類定義類定義執行三模式講解模式的角色如下委托人參與者參與者會對參與者送出請求。參與者參與者接受來自的請求,然后建立新的線程處理它。幫助者參與者實際處理請求的。
一、定義
Thread-Per-Message模式是指每個message一個線程,message可以理解成“消息”、“命令”或者“請求”。每一個message都會分配一個線程,由這個線程執行工作,使用Thread-Per-Message Pattern時,“委托消息的一端”與“執行消息的一端”回會是不同的線程。
二、模式案例該案例中,由Host分發請求,每一個請求分發一個新的線程進行處理。
Host類定義:
public class Host { private final Helper helper = new Helper(); public void request(final int count, final char c) { System.out.println(" request(" + count + ", " + c + ") BEGIN"); new Thread() { public void run() { helper.handle(count, c); } }.start(); System.out.println(" request(" + count + ", " + c + ") END"); } }
Helper類定義:
public class Helper { public void handle(int count, char c) { System.out.println(" handle(" + count + ", " + c + ") BEGIN"); for (int i = 0; i < count; i++) { slowly(); System.out.print(c); } System.out.println(""); System.out.println(" handle(" + count + ", " + c + ") END"); } private void slowly() { try { Thread.sleep(100); } catch (InterruptedException e) { } } }
執行:
public class Main { public static void main(String[] args) { System.out.println("main BEGIN"); Host host = new Host(); host.request(10, "A"); host.request(20, "B"); host.request(30, "C"); System.out.println("main END"); } }三、模式講解
Thread-Per-Message模式的角色如下:
Client(委托人)參與者
Client參與者會對Host參與者送出請求(Request)。上述案例中,Client參與者就是Main類。
Host參與者
Host參與者接受來自Client的請求,然后建立新的線程處理它。
Helper(幫助者)參與者
Helper實際處理請求的。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/71512.html
摘要:通道參與者參與者保存請求隊列,同時會預創建線程。注啟動線程是一項繁重的工作,模式預先創建一批線程,可以重復使用線程,達到資源再利用提升性能的目的。 一、定義 Work Thread模式和Thread-Per-Message模式類似,Thread-Per-Message每次都創建一個新的線程處理請求,而Work Thread模式預先會創建一個線程池(Thread Pool),每次從線程...
摘要:一定義模式用來獲取線程的執行結果。案例中的類就是參與者參與者接受請求,然后創建線程進行異步處理。參與者會立即返回以的形式。虛擬數據參與者是用來統一代表參與者與參與者。 一、定義 Future模式用來獲取線程的執行結果。在Thread-Per-Message模式中,如果調用一個線程異步執行任務,沒有辦法獲取到返回值,就像:host.request(10,A);而Future模式送出請求后...
摘要:哪吒社區技能樹打卡打卡貼函數式接口簡介領域優質創作者哪吒公眾號作者架構師奮斗者掃描主頁左側二維碼,加入群聊,一起學習一起進步歡迎點贊收藏留言前情提要無意間聽到領導們的談話,現在公司的現狀是碼農太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區Java技能樹打卡?【打卡貼 day2...
摘要:因為該在釋放等待線程后可以重用,所以稱它為循環的。若在繼續所有參與線程之前更新共享狀態,此屏障操作很有用。返回要求啟動此的參與者數目。查詢此屏障是否處于損壞狀態。將屏障重置為其初始狀態。 本人郵箱: 歡迎轉載,轉載請注明網址 http://blog.csdn.net/tianshi_kcogithub: https://github.com/kco1989/kco代碼已經全部托管git...
摘要:一名年工作經驗的程序員應該具備的技能,這可能是程序員們比較關心的內容。數據結構和算法分析數據結構和算法分析,對于一名程序員來說,會比不會好而且在工作中能派上用場。 一名3年工作經驗的Java程序員應該具備的技能,這可能是Java程序員們比較關心的內容。我這里要說明一下,以下列舉的內容不是都要會的東西—-但是如果你掌握得越多,最終能得到的評價、拿到的薪水勢必也越高。 1、基本語法 這包括...
閱讀 1650·2019-08-30 15:44
閱讀 2573·2019-08-30 11:19
閱讀 406·2019-08-30 11:06
閱讀 1567·2019-08-29 15:27
閱讀 3085·2019-08-29 13:44
閱讀 1629·2019-08-28 18:28
閱讀 2358·2019-08-28 18:17
閱讀 1987·2019-08-26 10:41