自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

netty代码分析(二)--ChannelPipeline

一、简介    ChannelPipeline是事件(event)的通道,它用于组织事件拦截器ChannelHandler。所以本质上,它只是ChannelHandler的一个链表。从I/O端获取的数据将以事件的方式通过ChannelPipeline,并被ChannelUpstreamHandler拦截,最终被程序的业务逻辑处理。要发送的数据通过pipeline被ChannelDowmstr...

2014-10-20 12:45:10 112

netty代码分析(一)--总体设计

一、简介    Netty3是一个轻量级的NIO框架,它的主要目标是实现底层nio接口的封装,分离IO传输与网络协议的设计,从而简化网络应用的实现。它大致的原理如下:    在用netty3框架实现一个应用服务器的时候,最主要的扩展点就是ChannelHandler,它类似于系统中的拦截器。系统中的数据传输全都采用异步的方式,当每一次底层出现数据到达/发送时,系统都会产生一个事件ev...

2014-10-20 12:44:39 128

spring aop分析(三)

四、方法调用    在JdkDynamicAopProxy类的invoke()方法中创建了一个ReflectiveMethodInvocation类,该方法将执行拦截器链和最终的方法调用:public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Cloneable { public Obje...

2014-10-20 12:44:09 93

spring aop分析(二)

三、计算拦截器链    调用链图:    JdkDynamicAopProxy实现了InvocationHandler接口,当其创建的JDK Proxy上的某一个方法被调用时,将会被JdkDynamicAopProxy类中的invoke(..)方法拦截:final class JdkDynamicAopProxy implements AopProxy, InvocationHa...

2014-10-20 12:43:34 88

spring aop分析(一)

一、简介    Spring Aop模块采用了代理(Proxy)机制来实现AOP功能,在运行过程中aop框架大致可以分成三个阶段:创建代理、计算拦截器链、处理调用。    在“创建代理”阶段,Spring AOP可以根据目标类的实现或设置采用JDK自动代理或CGLIB来创建目标对象的代理;对于静态的Pointcut,框架在目标方法第一次调用时将计算应用于该方法之上的“拦截器链”;在方法调...

2014-10-20 12:42:17 83

并发容器分析(五)--ConcurrentHashMap

一、简介    ConcurrentHashMap是Map的一种并发实现,在该类中元素的read操作都是无锁了,而write操作需要被同步。这非常适合于读操作远大于写操作的情况。在实现过程中,ConcurrentHashMap将所有元素分成了若干个segment,每个segment是独立的,在一个segment上加锁并不影响其他segment的操作。segment本身是一个hashtable,...

2010-10-13 22:20:37 209

并发容器分析(四)--ConcurrentLinkedQueue

一、简介    ConcurrentLinkedQueue是一个无锁的queue实现,它采用了一种无锁算法(在API中有说明),相比于传统的同步的queue来说吞吐量可以大大提高,同时它也不同于BlockingQueue,并不单单提供阻塞操作。它主要的目的是通过采用无锁的算法,使得read/write操作均不需要对容器加锁,提高容器吞吐量二、具体实现    查看相关的论文  ...

2010-10-13 22:20:09 91

并发容器分析(三)--LinkedBlockingQueue

一、简介    LinkedBlockingQueue是BlockingQueue的一种使用Link List的实现,它对头和尾(取和添加操作)采用两把不同的锁,相对于ArrayBlockingQueue提高了吞吐量。它也是一种阻塞型的容器,适合于实现“消费者生产者”模式。二、具体实现    LinkedBlockingQueue底层的定义如下:public class Linke...

2010-10-13 22:19:43 106

并发容器分析(二)--ArrayBlockingQueue

一、简介    BlockingQueue接口定义了一种阻塞的FIFO queue,每一个BlockingQueue都有一个容量,让容量满时往BlockingQueue中添加数据时会造成阻塞,当容量为空时取元素操作会阻塞。ArrayBlockingQueue是对BlockingQueue的一个数组实现,它使用一把全局的锁并行对queue的读写操作,同时使用两个Condition阻塞容量为空时的...

2010-10-13 22:19:24 158

并发容器分析(一)--CopyOnWriteArrayList

一、简介    JDK5中添加了新的concurrent包,其中包含了很多并发容器,这些容器针对多线程环境进行了优化,大大提高了容器类在并发环境下的执行效率。    CopyOnWriteArrayList类是一个线程安全的List接口的实现,在该类的内部进行元素的写操作时,底层的数组将被完整的复制,这对于读操作远远多于写操作的应用非常适合。在CopyOnWriteArrayList上进行...

2010-10-13 22:19:05 116

Guice源代码分析(三)--create injector过程

一、简介    Guice的运行可以分为三个阶段:install阶段、createinjector阶段和运行时阶段。install阶段主要完成加载Module中定义的绑定关系;createinjector阶段通过分析install中获得的绑定信息创建一个Injector实例;运行时阶段根据绑定信息响应用户请求。    在install过程结束之后,Module中自定义的绑定信息都由Bind...

2008-12-29 23:51:50 1091

Guice源代码分析(一)

一、简介    Guice中通过自定义Module实现中的bind、to等语法实现绑定信息的注册,在绑定中存在着一种特殊的情形:范型绑定,如下:public class ListUser { @Inject @Named("list") List<String> strings; @Inject @Named("list") List<Integer&gt...

2008-12-28 16:52:07 951

事务管理笔记(二)

5.3、事务属性配置    spring中对于事务属性的配置可以有两种办法,一种是在<tx:advice/>的<tx:attributes />下的<tx:method />上配置属性,以指定对应的事务属性。    <tx:method />的有关设置 属性默认值描述name 与事务关联的方法名,可用通配符(*)pr...

2008-12-15 10:51:05 119

事务管理笔记(一)

一、简介    在Spring和EJB中事务管理都是业务逻辑开发的重点,在spring2和EJB3之后都对事务管理进行了简化,更多得采用声明式(可通过注解)接口来开发事务。在典型的事务管理中,主要的关注点有三个:事务传播、事务隔离和事务回滚。    事务传播是指事务上下文Transactional Context如何在调用链中传播;事务隔离是指并发的事务相互之间不产生干扰;事务回滚涉及当产生异...

2008-12-14 15:44:15 109

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除