成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java多線程基礎(chǔ)(九)——Thread-Per-Message模式

Forest10 / 3224人閱讀

摘要:一定義模式是指每個一個線程,可以理解成消息命令或者請求。類定義類定義執(zhí)行三模式講解模式的角色如下委托人參與者參與者會對參與者送出請求。參與者參與者接受來自的請求,然后建立新的線程處理它。幫助者參與者實際處理請求的。

一、定義

Thread-Per-Message模式是指每個message一個線程,message可以理解成“消息”、“命令”或者“請求”。每一個message都會分配一個線程,由這個線程執(zhí)行工作,使用Thread-Per-Message Pattern時,“委托消息的一端”與“執(zhí)行消息的一端”回會是不同的線程。

二、模式案例

該案例中,由Host分發(fā)請求,每一個請求分發(fā)一個新的線程進行處理。

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) {
        }
    }
}

執(zhí)行:

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實際處理請求的。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/71512.html

相關(guān)文章

  • Java線程基礎(chǔ)(十)——Work Thread模式

    摘要:通道參與者參與者保存請求隊列,同時會預(yù)創(chuàng)建線程。注啟動線程是一項繁重的工作,模式預(yù)先創(chuàng)建一批線程,可以重復(fù)使用線程,達到資源再利用提升性能的目的。 一、定義 Work Thread模式和Thread-Per-Message模式類似,Thread-Per-Message每次都創(chuàng)建一個新的線程處理請求,而Work Thread模式預(yù)先會創(chuàng)建一個線程池(Thread Pool),每次從線程...

    xuweijian 評論0 收藏0
  • Java線程基礎(chǔ)(十一)——Future模式

    摘要:一定義模式用來獲取線程的執(zhí)行結(jié)果。案例中的類就是參與者參與者接受請求,然后創(chuàng)建線程進行異步處理。參與者會立即返回以的形式。虛擬數(shù)據(jù)參與者是用來統(tǒng)一代表參與者與參與者。 一、定義 Future模式用來獲取線程的執(zhí)行結(jié)果。在Thread-Per-Message模式中,如果調(diào)用一個線程異步執(zhí)行任務(wù),沒有辦法獲取到返回值,就像:host.request(10,A);而Future模式送出請求后...

    tinyq 評論0 收藏0
  • Java學(xué)習(xí)路線總結(jié),搬磚工逆襲Java架構(gòu)師(全網(wǎng)最強)

    摘要:哪吒社區(qū)技能樹打卡打卡貼函數(shù)式接口簡介領(lǐng)域優(yōu)質(zhì)創(chuàng)作者哪吒公眾號作者架構(gòu)師奮斗者掃描主頁左側(cè)二維碼,加入群聊,一起學(xué)習(xí)一起進步歡迎點贊收藏留言前情提要無意間聽到領(lǐng)導(dǎo)們的談話,現(xiàn)在公司的現(xiàn)狀是碼農(nóng)太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區(qū)Java技能樹打卡?【打卡貼 day2...

    Scorpion 評論0 收藏0
  • ()java線程之CyclicBarrier

    摘要:因為該在釋放等待線程后可以重用,所以稱它為循環(huán)的。若在繼續(xù)所有參與線程之前更新共享狀態(tài),此屏障操作很有用。返回要求啟動此的參與者數(shù)目。查詢此屏障是否處于損壞狀態(tài)。將屏障重置為其初始狀態(tài)。 本人郵箱: 歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明網(wǎng)址 http://blog.csdn.net/tianshi_kcogithub: https://github.com/kco1989/kco代碼已經(jīng)全部托管git...

    lingdududu 評論0 收藏0
  • 一名3年工作經(jīng)驗的java程序員應(yīng)該具備的職業(yè)技能

    摘要:一名年工作經(jīng)驗的程序員應(yīng)該具備的技能,這可能是程序員們比較關(guān)心的內(nèi)容。數(shù)據(jù)結(jié)構(gòu)和算法分析數(shù)據(jù)結(jié)構(gòu)和算法分析,對于一名程序員來說,會比不會好而且在工作中能派上用場。 一名3年工作經(jīng)驗的Java程序員應(yīng)該具備的技能,這可能是Java程序員們比較關(guān)心的內(nèi)容。我這里要說明一下,以下列舉的內(nèi)容不是都要會的東西—-但是如果你掌握得越多,最終能得到的評價、拿到的薪水勢必也越高。 1、基本語法 這包括...

    renweihub 評論0 收藏0

發(fā)表評論

0條評論

Forest10

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<