模式7--ThreadPerMessage
来至《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相关推荐
- Java并发编程实战~Worker Thread模式
在上一篇文章中,我们介绍了一种最简单的分工模式--Thread-Per-Message 模式,对应到现实世界,其实就是委托代办.这种分工模式如果用 Java Thread 实现,频繁地创建.销毁线程非 ...
- java workthread_Java多线程基础(十)——Work Thread模式
一.定义 Work Thread模式和Thread-Per-Message模式类似,Thread-Per-Message每次都创建一个新的线程处理请求,而Work Thread模式预先会创建一个线程池 ...
- 多线程十二种设计模式详解
文章目录 前言 多线程程序的评价标准 Single Threaded Execution 模式 Single Threaded Execution 模式简介 Single Threaded Execu ...
- 大淘宝服务端技术干货沉淀和总结
网络基础 TCP三次握手 三次握手过程 客户端--发送带有SYN标志的数据包--服务端 一次握手 Client进入syn_sent状态 服务端--发送带有SYN/ACK标志的数据包--客户端 二次握手 ...
- python 各种模块学习
from:https://blog.csdn.net/weiwangchao_/article/details/70570508 转载:.... Python的模块大全,很全,有详细介绍! 另外附Py ...
- Java并发编程实战~Thread-Per-Message模式
我们曾经把并发编程领域的问题总结为三个核心问题:分工.同步和互斥.其中,同步和互斥相关问题更多地源自微观,而分工问题则是源自宏观.我们解决问题,往往都是从宏观入手,在编程领域,软件的设计过程也是先从概 ...
- Java多线程设计模式(4)线程池模式
前序: Thread-Per-Message Pattern,是一种对于每个命令或请求,都分配一个线程,由这个线程执行工作.它将"委托消息的一端"和"执行消息的一端&qu ...
- Java并发编程实战~生产者-消费者模式
前面我们在<Worker Thread 模式>中讲到,Worker Thread 模式类比的是工厂里车间工人的工作模式.但其实在现实世界,工厂里还有一种流水线的工作模式,类比到编程领域,就 ...
- Thread-Per-Message设计模式
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit;public class Tes ...
- 【Java】并发模式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pt4IAyjj-1669730661631)(https://gitee.com/github-25970295/blo ...
最新文章
- 微软Azure AI负责人:OpenAI只能在微软云上训练模型,不懂中台
- python输出文本-使用python输出指定格式文本的内容
- css实现快速抖动效果_web前端入门到实战:CSS实现照片堆叠效果
- 蔚来汽车回应“十四万元补胎”纠纷:车主未及时报案 除轮胎外底盘也严重受损...
- iphonex适配游戏_Galaxy Fold应用适配大测试,这些软件超有远见!
- Security+ 学习笔记46 网络工具
- 一款非常牛逼的 Java 爬虫框架!(请低调使用)
- Extjs EditorGridPanel复选框实现单选, 同时锁住指定行
- html如何修改按钮样式,css怎么设置按钮样式?
- python123数字转换_Python 中文(大写)数字转阿拉伯数字(转)
- artwork will be rounded down because......
- Q4营收同比增长34.7%,Saleforces股价为何总停滞不前?
- 设置esxi主机时间
- 锂电池电量百分比计算_锂电池电压电量关系
- 全国所有城市人均GDP排名(包含县级市)
- 最大公因数及其求解算法(GCD)
- ES修改默认的密码信息
- Python+GDAL面数据中心点提取为单独shape文件,并复制属性数据
- 微信小程序系列——js遍历数组,微信小程序数组的遍历,forEach
- 质量指标——什么是增量覆盖率?它有啥用途?
热门文章
- 关于mysql和oracle错误的有_关于MySQL与Oracle的区别
- java bean与xml转换_Java Bean与xml互相转换的方法分析
- Rabbitmq如何保证消息顺序执行
- 027_html框架
- java获取content-disposition_java – Content-Disposition附件不起作用 – 将...
- webstorm配置环境变量_webstorm中配置nodejs环境及npm步骤详细解说
- java的23设计模式
- Android XML 实例化的过程
- Android下的Linux
- linux基本网络IP自动、手动配置