来至《java多线程设计模式》

对每个命令或请求分配一个线程,由这个线程执行工作。

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");
    }
}

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");}
}

request会建立出新的线程,该线程调用Helper的handle方法,解决handle的耗时,提高client的响应性。

但是Host里面启动线程需要花费时间(Worker Pattern来解决)。

转载于:https://www.cnblogs.com/cxccbv/archive/2009/05/08/1452938.html

模式7--ThreadPerMessage相关推荐

  1. Java并发编程实战~Worker Thread模式

    在上一篇文章中,我们介绍了一种最简单的分工模式--Thread-Per-Message 模式,对应到现实世界,其实就是委托代办.这种分工模式如果用 Java Thread 实现,频繁地创建.销毁线程非 ...

  2. java workthread_Java多线程基础(十)——Work Thread模式

    一.定义 Work Thread模式和Thread-Per-Message模式类似,Thread-Per-Message每次都创建一个新的线程处理请求,而Work Thread模式预先会创建一个线程池 ...

  3. 多线程十二种设计模式详解

    文章目录 前言 多线程程序的评价标准 Single Threaded Execution 模式 Single Threaded Execution 模式简介 Single Threaded Execu ...

  4. 大淘宝服务端技术干货沉淀和总结

    网络基础 TCP三次握手 三次握手过程 客户端--发送带有SYN标志的数据包--服务端 一次握手 Client进入syn_sent状态 服务端--发送带有SYN/ACK标志的数据包--客户端 二次握手 ...

  5. python 各种模块学习

    from:https://blog.csdn.net/weiwangchao_/article/details/70570508 转载:.... Python的模块大全,很全,有详细介绍! 另外附Py ...

  6. Java并发编程实战~Thread-Per-Message模式

    我们曾经把并发编程领域的问题总结为三个核心问题:分工.同步和互斥.其中,同步和互斥相关问题更多地源自微观,而分工问题则是源自宏观.我们解决问题,往往都是从宏观入手,在编程领域,软件的设计过程也是先从概 ...

  7. Java多线程设计模式(4)线程池模式

    前序: Thread-Per-Message Pattern,是一种对于每个命令或请求,都分配一个线程,由这个线程执行工作.它将"委托消息的一端"和"执行消息的一端&qu ...

  8. Java并发编程实战~生产者-消费者模式

    前面我们在<Worker Thread 模式>中讲到,Worker Thread 模式类比的是工厂里车间工人的工作模式.但其实在现实世界,工厂里还有一种流水线的工作模式,类比到编程领域,就 ...

  9. Thread-Per-Message设计模式

    import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit;public class Tes ...

  10. 【Java】并发模式

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pt4IAyjj-1669730661631)(https://gitee.com/github-25970295/blo ...

最新文章

  1. 微软Azure AI负责人:OpenAI只能在微软云上训练模型,不懂中台
  2. python输出文本-使用python输出指定格式文本的内容
  3. css实现快速抖动效果_web前端入门到实战:CSS实现照片堆叠效果
  4. 蔚来汽车回应“十四万元补胎”纠纷:车主未及时报案 除轮胎外底盘也严重受损...
  5. iphonex适配游戏_Galaxy Fold应用适配大测试,这些软件超有远见!
  6. Security+ 学习笔记46 网络工具
  7. 一款非常牛逼的 Java 爬虫框架!(请低调使用)
  8. Extjs EditorGridPanel复选框实现单选, 同时锁住指定行
  9. html如何修改按钮样式,css怎么设置按钮样式?
  10. python123数字转换_Python 中文(大写)数字转阿拉伯数字(转)
  11. artwork will be rounded down because......
  12. Q4营收同比增长34.7%,Saleforces股价为何总停滞不前?
  13. 设置esxi主机时间
  14. 锂电池电量百分比计算_锂电池电压电量关系
  15. 全国所有城市人均GDP排名(包含县级市)
  16. 最大公因数及其求解算法(GCD)
  17. ES修改默认的密码信息
  18. Python+GDAL面数据中心点提取为单独shape文件,并复制属性数据
  19. 微信小程序系列——js遍历数组,微信小程序数组的遍历,forEach
  20. 质量指标——什么是增量覆盖率?它有啥用途?

热门文章

  1. 关于mysql和oracle错误的有_关于MySQL与Oracle的区别
  2. java bean与xml转换_Java Bean与xml互相转换的方法分析
  3. Rabbitmq如何保证消息顺序执行
  4. 027_html框架
  5. java获取content-disposition_java – Content-Disposition附件不起作用 – 将...
  6. webstorm配置环境变量_webstorm中配置nodejs环境及npm步骤详细解说
  7. java的23设计模式
  8. Android XML 实例化的过程
  9. Android下的Linux
  10. linux基本网络IP自动、手动配置