源码
iteye_8058
这个作者很懒,什么都没留下…
展开
-
Spring结构大概
三大组件:Bean,Context,Core通过这三大组件能构建出像AOP,Web,Transaction,Orm特性功能Bean组件的主要部分是BeanFactory、BeanDefinition、BeanDefinitionReader1、BeanFactory分为ListableBeanFactory表示可以返回一些Bean集合,HierarchicalBeanFactory...原创 2013-12-19 10:03:39 · 73 阅读 · 0 评论 -
重入读写锁(ReentrantReadWriteLock)源码
tryAcquireSharedexclusiveCount(state)!=0&&getExclusiveOwnerThread!=current//如果现在是写锁状态,并且当前线程不是拥有锁的线程也就是如果是当前线程是拥有写锁的,读操作也可以进去if(!readShouldBlock(current)&&CAS(state, state+SHARED_UNIT)){ c...原创 2014-01-23 13:35:37 · 110 阅读 · 0 评论 -
信号(Semaphore)源码
成员:sync方法:acquire acquire(int) acquireUnInterruptibly acquireUnInterruptily(int) tryAcquire tryAcquire(int) tryAcquire(long, TimeUnit) tryAcquire(int, long, TimeUnit)release release(int) avai...原创 2014-01-20 16:33:08 · 126 阅读 · 0 评论 -
栅栏(CyclicBarrier)源码
成员:lock,trip(是lock的condition),parties,barrierCommand,generation,count1、generation是为了标示这一次的栅栏是否被破坏。2、parties就是构造函数时传入的参数,表示在trip之前需要执行的线程数。count被parties初始化,是一个变量,dowait时会减一,直至等于0的时候,触发nextGener...原创 2014-01-20 16:32:38 · 225 阅读 · 0 评论 -
AQS源码阅读理解(uncompleted)
有head和tail当acquire*操作的时候,如果我们定义的资源限制操作返回false时,会在tail端加入一个新的节点(Node里面的所有基础属性都是volatile,用CAS设置tail指针)。然后利用LockSupport.part(this)阻塞。当release的时候,如果我们定义的资源操作返回true,会将head节点的下一个SIGNAL节点的thread唤醒。...2014-01-20 16:19:59 · 111 阅读 · 0 评论 -
ConcurrentLinkedQueue
成员:head tail内部类:Node item和next,Itr implements Iteratoradd offer 利用UNSAFE.compareAndSwapObject(p, nextOffSet, null, newNode)(p表示遍历整个链表一直到next为null为止的Node)如果设置成功,调用UNSAFE.compareAndSwapObj...原创 2014-01-08 09:41:16 · 89 阅读 · 0 评论 -
ConcurrentHashMap
ConcurrentHashMap 主要两个结构:Segment[] 和 HashEntry[]每个Segment是一个ReentrantLockSegment结构跟HashMap差不多,成员:table,count,loadFactor,threshold,modCount每个Segment继承ReentrantLock,实现Serializable定义了一般的ma...2014-01-08 09:39:41 · 76 阅读 · 0 评论 -
PriorityQueue数据结构
PriorityQueue数据结构原创 2014-01-08 09:36:56 · 82 阅读 · 0 评论 -
TreeMap源码
TreeMap源码原创 2014-01-08 09:36:19 · 75 阅读 · 0 评论 -
TreeMap数据结构篇
红黑树原创 2014-01-08 09:35:41 · 224 阅读 · 0 评论 -
ArrayList
transient 为何不直接实例化这个数组,原因是不希望将数组中空余的也实例化,所以要加writeObject(ObjectOutputStream) readObject(ObjectInputStream)ensureCapacity(size+1) //检查如果size+1大于oldCapacity,newCapacity=(oldCapacity*3)/2+1fastRem...原创 2013-12-19 10:20:20 · 88 阅读 · 0 评论 -
HashMap源码
Map接口定义了一个内部类EntryHashMap一个bucket用Entry(extends Map.Entry)链表示HashMap可以存放null key和null valuetransfer 将当前tables上的所有的节点转移到newTable上去hash(int hashCode) 是为了防止质量差的hash函数带来过多的冲突(碰撞)。modCount 结...原创 2013-12-19 10:15:47 · 72 阅读 · 0 评论 -
jetty源码分析
加载WebXmlConfiguration对象,找到webdefault.xml(在jetty-webapp-9.1.jar包中)和web.xml文件,创建WebAppClassLoader,利用StandardDescriptorProcessor解析WebXmlConfiguration,将配置信息设置到Context。执行子handler的start,会分别启动SessionHandler...2013-12-19 10:07:08 · 259 阅读 · 0 评论 -
tomcat 源码分析
前言:tomcat启动(BootStrap),会由Server(LifeCycle)的start调用传递到StandardContext(LifeCycle)容器的start调用。1、init初始化方法:加入ContextConfig listener,然后lifeCycleSupport.fireLifecycleEvent(INIT_EVENT),会触发ContextConfig的ini...原创 2013-12-19 10:05:23 · 85 阅读 · 0 评论 -
MySimpleReadWriteLock
import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.AbstractQueuedSynchronizer;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;publi...2014-02-07 14:36:18 · 83 阅读 · 0 评论