Java
技术无远弗届
技术为业务服务
展开
-
作业调度器——quartz
一个任务或作业定时执行需求在我们的系统中普遍存在,Quartz是一个很著名的开源作业调度器,可以创建大量job,按照丰富的自定义日历表进行调度执行。 官网:http://www.quartz-scheduler.org 本文首先介绍一下quartz的使用,然后分享一个自己在使用的过程中遇到的小陷阱——job的状态问题 quartz的使用: quartz的介绍和使用网上有很多,可原创 2011-11-26 18:28:11 · 805 阅读 · 0 评论 -
工厂模式之commons-pool
工厂模式主要有抽象工厂和工厂方法两种方式,抽象工厂针对的是多个产品结构,而工厂方法针对的是一个产品结构。commons-pool是一个开源的对象池,其代码实现充分利用了工厂模式,本文将就其代码中实现的工厂模式简单介绍一下: commons-pool中有两种对象池:objectpool、keyobjectpool,代码中将这两者独立开来,使得代码结构更加清晰,其实这两个对象池也可以抽象原创 2011-11-27 18:08:01 · 1068 阅读 · 0 评论 -
时间轮盘TimeWheel
在管理网络连接时,经常要对大量的连接进行超时管理,如将超时的连接断开。如果将这些大量的连接放在一个map中,然后用一个线程进行扫描,把超时的连接找到,如果连接很多,则这种做法很难接受的。 目前有个通用的做法,即时间轮盘方式:TimeWheel 设想有个时间钟,每隔一段时间(如100ms)有个滴答,每个滴答处对应一个list,存放了一些定时任务。但时间走到一个滴答处时就触发其对应的任务lis原创 2011-12-17 14:46:48 · 3805 阅读 · 0 评论 -
Netty框架之异步事件驱动模型
Netty使用了异步的事件驱动模型,来触发网络I/O的各种操作,其在socket层上面封装一层异步事件驱动模型,使得业务代码不需要关心网络底层,就可以编写异步的无网络I/O阻塞的代码。 Netty的异步事件驱动模型主要涉及到下面几个核心的概念: Channel:表示一个与socket关联的通道 ChannelPipeline:管道,一个Channel拥有一个ChannelPipel原创 2011-12-11 12:04:48 · 2882 阅读 · 0 评论 -
Netty框架之网络线程模型
Netty网络线程模型主要有两类线程组成:boss线程、worker线程。启动一个server实例只会产生一个boss线程,boss线程主要负责监听端口,当有新的连接请求时就会产生一个task交给worker线程池处理,worker线程池中线程的个数默认是cpu个数的2倍。 Netty网络I/O操作采用了目前流行的I/O多路选择器Selector方式(具体的实现是select原创 2011-12-11 12:12:43 · 3095 阅读 · 0 评论