最近在看tomcat源码的时候发现里面有很多经典设计模式的运用案例,正好趁此机会熟悉一下设计模式,为了保证代码原味性,就直接复制粘贴了,以下代码不能运行,但是能看明白,可以用来学习和借鉴。
相关设计模式:享元模式
//最少处理器个数 protected int minProcessors = 5; //最大处理器个数 private int maxProcessors = 20; //当前处理器个数 private int curProcessors = 0; //用于存放使用完的处理器 private Stack<Object> processors = new Stack<Object>(); //用于存放新创建的处理器 private Vector<Object> created = new Vector<Object>(); /** * 处理器使用完以后将处理器加入处理器池中, * @author fjding * @date 2016年4月18日 下午10:04:54 * @param processor * =================Modify Record================= * @Modifier @date @Content * fjding 2016年4月18日 下午10:04:54 新建 * */ private void recycle(HttpProcessor processor) { processors.push(processor); } // /** * 通过该方法可以获得处理器池中的线程 * @author fjding * @date 2016年4月18日 下午10:05:59 * @return * =================Modify Record================= * @Modifier @date @Content * fjding 2016年4月18日 下午10:05:59 新建 * */ private HttpProcessor createProcessor() { synchronized (processors) { //池中有处理器可用 if (processors.size() > 0) { return ((HttpProcessor) processors.pop()); } //如果处理器池中没有可以用的处理器,则判断当前的处理器个数(此时池中是空的)是否大于设置最大处理器个数, if ((maxProcessors > 0) && (curProcessors < maxProcessors)) { //没有则创建 return (newProcessor()); } else { //如果处理器最大个数被设置为-1,则要多少个处理器就创建多少个,不受限制 if (maxProcessors < 0) { return (newProcessor()); } else { return (null); } } } } /** * 创建一个新的处理器 * @author fjding * @date 2016年4月18日 下午10:25:36 * @return * =================Modify Record================= * @Modifier @date @Content * fjding 2016年4月18日 下午10:25:36 新建 * */ private HttpProcessor newProcessor() { //当创建一个处理器,则当前处理器标记加1,给改处理器设置了个名字,线程也是这么做的 HttpProcessor processor = new HttpProcessor(this, curProcessors++); if (processor instanceof Lifecycle) { try { ((Lifecycle) processor).start(); } catch (Exception e) { log("newProcessor", e); return (null); } } created.addElement(processor); return (processor); }
相关推荐
arm专利:在安全模式和非安全模式间切换的处理器
ARM处理器工作模式实验.
通过实验掌握使用MSR/MRS指令,实现ARM处理器工作模式的切换; 观察不同模式下的寄存器,加深对CPU结构的理解。
ARM微处理器支持的7种工作模式的概念或应用介绍
讲述ARM11处理器节能模式的使用於节能模式下设备的设置
\电子文档处理器电子文档处理器\电子文档处理器
顶力处理器DS418处理器软件
500元级处理器不二之选 AMD速龙Ⅱ处理器.pdf
《超标量处理器设计》讲述超标量(SuperScalar)处理器的设计,现代的高性能处理器都采用了超标量结构,大至服务器和高性能PC的处理器,小至平板电脑和智能手机的处理器,无一例外。《超标量处理器设计》以超标量...
一款安全RISC-V处理器特权模式和内存保护测试.pdf
牛牛数据处理器牛牛数据处理器牛牛数据处理器
大话处理器:处理器基础知识读本的真正完整本,全部八章,手动呕血扫描加书签,非网上那种6.33MB的太监版~!以全家人性命为誓~! 作者简介 万木杨,网名木兮清扬,华为公司服务近6年,曾任软件工程师、算法工程师、...
行业分类-设备装置-处理器和区分系统管理模式条目的方法.zip
ARM ADS集成开发环境 Arm汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别 代码分析
ARM处理器共有7种不同的处理器模式,每一种模式中都有一组相应的寄存器组。在任何时刻,可见的寄存器包括15个通用寄存器(R0-R14),一个或两个状态寄存器及程序计数器(PC)。在所有的寄存器中,有些是各模式公用一...
基于图形处理器的通用计算模式.pdf
面向网络处理器的软件组件模式.pdf
工业界称为多核的多处理器机器正迅速地渗入计算的各个领域。多处理器编程要求理解新型计算原理、算法及编程工具,至今很少有人能够精通这门编程艺术。 现今,大多数工程技术人员都是通过艰辛的反复实践、求助有经验...
sql操作系统之处理器管理。
《大话处理器:处理器基础知识读本》主要内容简介:处理器是IT、通信、电子产业的基石,没有处理器,信息产业大厦就如同建立在沙滩之上。《大话处理器:处理器基础知识读本》是一本图文并茂、生动幽默的处理器科普读本...