模式8--WorkerThread
来至《java多线程设计模式》
类似ThreadPool,预先产生几个worker线程准备工作。
public void startWorkers() {for (int i = 0; i < threadPool.length; i++) {threadPool[i].start();}}
package Sample;public class WorkerThread extends Thread {private final Channel channel;public WorkerThread(String name, Channel channel) {super(name);this.channel = channel;}public void run() {while (true) {}} }
public synchronized void putRequest(Request request) {while (count >= requestQueue.length) {try {wait();} catch (InterruptedException e) {}}requestQueue[tail] = request;tail = (tail + 1) % requestQueue.length;count++;notifyAll();}public synchronized Request takeRequest() {while (count <= 0) {try {wait();} catch (InterruptedException e) {}}Request request = requestQueue[head];head = (head + 1) % requestQueue.length;count--;notifyAll();return request;}
转载于:https://www.cnblogs.com/cxccbv/archive/2009/05/08/1452954.html
模式8--WorkerThread相关推荐
- python电梯题_OO——电梯作业总结
电梯作业总结 程序结构与复杂度的分析 第一次作业 1.设计思路 第一次作业是电梯作业的第一次,也是我多线程变成的第一次实践.任务是编写一个多线程实时电梯系统,采用FAFS的调度方式.由于第一次作业中没 ...
- 设计模式调优-性能设计沉思录(10)
JAVA调优系列文章 JVM调优全面探讨-性能设计沉思录(1)_luozhonghua2000的博客-CSDN博客 JVM GC回收和内存分配优化-性能设计沉思录(2)_luozhonghua2000 ...
- 大淘宝服务端技术干货沉淀和总结
网络基础 TCP三次握手 三次握手过程 客户端--发送带有SYN标志的数据包--服务端 一次握手 Client进入syn_sent状态 服务端--发送带有SYN/ACK标志的数据包--客户端 二次握手 ...
- python 各种模块学习
from:https://blog.csdn.net/weiwangchao_/article/details/70570508 转载:.... Python的模块大全,很全,有详细介绍! 另外附Py ...
- Java多线程设计模式(4)线程池模式
前序: Thread-Per-Message Pattern,是一种对于每个命令或请求,都分配一个线程,由这个线程执行工作.它将"委托消息的一端"和"执行消息的一端&qu ...
- 深入理解Spark 2.1 Core (六):Standalone模式运行的原理与源码分析
我们讲到了如何启动Master和Worker,还讲到了如何回收资源.但是,我们没有将AppClient是如何启动的,其实它们的启动也涉及到了资源是如何调度的.这篇博文,我们就来讲一下AppClient ...
- reactor模式:多线程的reactor模式
上文说到单线程的reactor模式 reactor模式:单线程的reactor模式 单线程的reactor模式并没有解决IO和CPU处理速度不匹配问题,所以多线程的reactor模式引入线程池的概念, ...
- java workthread_Java多线程基础(十)——Work Thread模式
一.定义 Work Thread模式和Thread-Per-Message模式类似,Thread-Per-Message每次都创建一个新的线程处理请求,而Work Thread模式预先会创建一个线程池 ...
- 多线程编程模式之Single Threaded Execution 模式
一.Single Threaded Execution 模式介绍 简单的来说,Single threaded execution 模式描述了在一种多线程环境下各个线程对于公用资源的使用方式--任一时刻 ...
- 多线程设计模式-线程池模式
定义: 使用极其有限的资源(线程池)去处理相对无限的任务 线程池模式UML图 ThreadPool: 负责接收和存储任务以及工作者线程的生命周期管理 submit: 用于接收一个任务,客户端代 ...
最新文章
- Oracle自增列创建方法
- 前端资源系列(2)-SublimeText快捷键大全
- Java凝视Override、Deprecated、SuppressWarnings具体解释
- php怎么写获取手机剪切板到搜索栏,如何根据指定的剪切板获取html?
- java s0 s1_业余草告诉你Java GC 变量含义(S0 S1 E O P YGC YGCT FGC FGCT G
- 《About Multi-Touch(多点触摸是个什么东西?)》:基于光学原理的多点触摸技术全解析...
- 李浩:无限节点的CDN架构演进
- 深入理解MFC消息循环和消息泵的原理
- 在struts2中配置自定义拦截器放行多个方法
- web前端之html从入门到精通
- python numpy中对ndarry按照index(位置下标)增删改查
- “你的深度学习框架包含15个漏洞”,360说 | 附论文
- HBase实战 | 从MySQL到HBase:数据存储方案转型的演进
- android andbase,andbase
- c语言实验报告问题错误分析,C语言实验报告
- 【MATLAB】求极限
- DDD领域驱动设计:四层架构应用
- 汽车销售数据相关性分析
- 科技“蝶变”,两轮电动车下一个五年的“新动力”
- css如何修改滚动条样式
热门文章
- c malloc 头文件_干货笔记 | C/C++笔试面试详细总结(二)
- arcgis分隔图层重复出文件_已知坐标点txt文件在ArcGIS中转换成shp数据的两种方法...
- java 通过IText生成PDF时顺序问题(图片)
- 【IT笔试面试题整理】判断一个树是否是另一个的子树
- FLASH ERASE:CHIP、BLOCK、SECTOR
- 【人脸对齐-Landmarks】人脸关键点检测方法及评测汇总
- strace命令用法
- 深度学习与计算机视觉(三)最优化与梯度下降
- 女孩子应该养成的好习惯
- 安卓设置Activity切换动画无效的问题