君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理
上一页 1 ··· 46 47 48 49 50 51 52 53 54 ··· 107 下一页

2012年12月15日 #

摘要: 我们都知道使用线程池能够控制线程的数量,尤其是大量的“短命”线程存在时,线程池将大大降低系统消耗(内存和CPU)。不过,线程池也同样需要管理,于是我写了本篇。首先,我们来看看管理器的整个继承关系:显而易见,有ThreadPoolExecutor和ScheduledThreadPoolExecutor两个实现类,当然Executor类里也有一些内部类实现了特定的功能(如class DelegatedScheduledExecutorService),我们也可以自己通过扩展这里所有的接口、抽象类、类来实现自己的特定功能,如继承ThreadPoolExecutor类,覆写beforeExecute( 阅读全文
posted @ 2012-12-15 21:54 刺猬的温驯 阅读(341) 评论(0) 推荐(0)

摘要: Executor框架是juc里提供的线程池的实现。前两天看了下Executor框架的一些源码,做个简单的总结。线程池大概的思路是维护一个的线程池用于执行提交的任务。我理解池的技术的主要意义有两个:资源的控制,如并发量限制。像连接池这种是对数据库资源的保护。资源的有效利用,如线程复用,避免频繁创建线程和线程上下文切换。那么想象中设计一个线程池就需要有线程池大小、线程生命周期管理、等待队列等等功能,下面结合代码看看原理。Excutor整体结构如下:Executor接口定义了最基本的execute方法,用于接收用户提交任务。ExecutorService定义了线程池终止和创建及提交futureTas 阅读全文
posted @ 2012-12-15 21:42 刺猬的温驯 阅读(906) 评论(0) 推荐(0)

2012年12月14日 #

摘要: 来源:YidingHe's Blog从 Java 5 开始,Java 提供了自己的线程池。线程池就是一个线程的容器,每次只执行额定数量的线程。 java.util.concurrent.ThreadPoolExecutor 就是这样的线程池。它很灵活,但使用起来也比较复杂,本文就对其做一个介绍。首先是构造函数。以最简单的构造函数为例:publicThreadPoolExecutor( intcorePoolSize, intmaximumPoolSize, longkeepAliveTime, TimeUnitunit, BlockingQueue<Runnable>wor 阅读全文
posted @ 2012-12-14 00:26 刺猬的温驯 阅读(416) 评论(0) 推荐(0)

2012年12月8日 #

摘要: 转载http://llying.iteye.com/blog/496541大家都了解在MS家族中iis作为internet服务器可谓是赫赫有名,简单,方便。而且相关的web程序(asp,asp.net)也是比比皆是。我们希望java开发的web程序可以和iis共存(共同使用80端口发布)。这方面的教程网上很多,多数是copy之后又copy,以至于有些细节一直含糊不清,也导致我走了许多弯路。在此留个脚印防止日后的错误。软件及环境windows server 2003IIS 6.0Tomcat 6.0.20JDK 6.0JK isapi_redirect-1.2.14 (很多情况下是由于isapi 阅读全文
posted @ 2012-12-08 16:27 刺猬的温驯 阅读(394) 评论(0) 推荐(0)

2012年12月2日 #

摘要: 转载http://www.infoq.com/cn/articles/zh-tomcat-http-request-2?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent_articles_clk很多开源应用服务器都是集成tomcat作为web container的,而且对于tomcat的servlet container这部分代码很少改动。这样,这些应用服务器的性能基本上就取决于Tomcat处理HTTP请求的connector模块的性能。本文首先从应用层次分析了tomcat所 阅读全文
posted @ 2012-12-02 23:52 刺猬的温驯 阅读(287) 评论(0) 推荐(1)

摘要: 转载http://www.infoq.com/cn/articles/zh-tomcat-http-request-1很多开源应用服务器都是集成tomcat作为web container的,而且对于tomcat的servlet container这部分代码很少改动。这样,这些应用服务器的性能基本上就取决于Tomcat处理HTTP请求的connector模块的性能。本文首先从应用层次分析了tomcat所有的connector种类及用法,接着从架构上分析了connector模块在整个tomcat中所处的位置,最后对connector做了详细的源代码分析。并且我们以Http11NioProtocol 阅读全文
posted @ 2012-12-02 23:49 刺猬的温驯 阅读(359) 评论(0) 推荐(1)

摘要: 本系列转载自http://blog.csdn.net/haitao111313/article/category/1179996 我们知道,在Tomcat的世界里,一个Host容器代表一个虚机器资源,Context容器代表一个应用,所谓的部署器就是能够把Context容器添加进Host容器中去的一个组件。显然,一个Host容器应该拥有一个部署器组件。简单的部署代码应该是下面这样的:[java]view plaincopyprint?Contextcontext=newStandardContext();Hosthost=newStandardHost();host.addChild(conte 阅读全文
posted @ 2012-12-02 17:18 刺猬的温驯 阅读(297) 评论(0) 推荐(0)

摘要: 本系列转载自http://blog.csdn.net/haitao111313/article/category/1179996在明白Tomcat的Session机制之前,先要了解Session,Cookie,JSESSIONID这几个概念。JSESSIONID是一个唯一标识号,用来标识服务器端的Session,也用来标识客户端的Cookie,客户端和服务器端通过这个JSESSIONID来一一对应。这里需要说明的是Cookie已经包含JSESSIONID了,可以理解为JSESSIONID是Cookie里的一个属性。让我假设一次客户端连接来说明我对个这三个概念的理解: Http连接本身是无状态. 阅读全文
posted @ 2012-12-02 17:16 刺猬的温驯 阅读(543) 评论(0) 推荐(0)

摘要: 本系列转载自http://blog.csdn.net/haitao111313/article/category/1179996在讲Tomcat的载入器之前,先要了解一下java的类加载机制,这里就不具体说了,仅仅写一点我认为比较重要的东西: 1:一般实现自己的类加载器是重写ClassLoader的findClass方法,然后在这个方法里面读取class文件为byte[]数组,传入defineClass方法,defineClass方法返回我们加载的类。这样便实现了我们自己的简单的类加载器。下面是一个简单的自定义类加载器的findClass方法:[java]view plaincopyprin. 阅读全文
posted @ 2012-12-02 17:15 刺猬的温驯 阅读(781) 评论(0) 推荐(0)

摘要: 本系列转载自http://blog.csdn.net/haitao111313/article/category/1179996在前面的大部分文章都是讲连接器和容器的,以后的内容会偏向写一些Tomcat的其他组件以及一些细节的东西。 Tomcat有很多组件,要一个一个启动组件难免有点麻烦。由于Tomcat的包含关系是Catalina->Server->Service->容器/连接器/日志器等,于是可通过父组件负责启动/关闭它的子组件,这样只要启动Catalina,其他的都自动启动了。这种单一启动和关闭的机制是通过实现Lifecycle接口来实现的。下面是Lifecycle接口 阅读全文
posted @ 2012-12-02 17:13 刺猬的温驯 阅读(313) 评论(0) 推荐(0)

上一页 1 ··· 46 47 48 49 50 51 52 53 54 ··· 107 下一页