摘要: ArrayList ArrayList是基于数组实现的List 是有序的 每次添加之前判断是否进行扩容 不是线程安全的。 构造方法 add 在查看add方法之前,先看看ArrayList父类AbstractList的一个属性modCount modCount是用来记录list改变的次数(add,re 阅读全文
posted @ 2016-11-29 23:04 lacker 阅读(302) 评论(0) 推荐(0) 编辑
摘要: ScheduledThreadPoolExecutor 该类继承自ThreadPoolExecutor,增加了定时执行线程和延迟启动的功能,这两个功能是通过延时队列DelayedWorkQueue辅助实现的。 线程池里面的线程需要从队列里面获取任务,任务根据延时时长是有顺序的,线程池的线一直获取延时 阅读全文
posted @ 2016-11-22 22:21 lacker 阅读(1335) 评论(0) 推荐(0) 编辑
摘要: 线程池 线程池处理流程 核心线程池:创建新线程执行任务,需要获取全局锁 队列:将新来的任务加入队列 线程池:大于corePoolSize,并且队列已满,小于maxPoolSize,创建新的worker执行任务 线程池已满(达到max)处理策略:大于线程最大处理能力,大于maxPoolSize,选择拒 阅读全文
posted @ 2016-11-19 11:28 lacker 阅读(548) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal 先来看看ThreadLocal的注释: This class provides thread local variables . These variables differ from their normal counterparts in that each thread 阅读全文
posted @ 2016-11-17 00:15 lacker 阅读(829) 评论(0) 推荐(1) 编辑
摘要: ConcurrentLinkedQueue 在考虑并发的时候可以先考虑单线程的情况,然后再将并发的情况考虑进来。 比如ConcurrentLinkedQueue: 1. 先考虑单线的offer 2. 再考虑多线程时候的offer: 多个线程offer 部分线程offer,部分线程poll offer 阅读全文
posted @ 2016-11-15 22:57 lacker 阅读(7402) 评论(1) 推荐(1) 编辑
摘要: ConcurrentHashMap ConcurrentHashMap 结构 采用了分段锁的方法提高COncurrentHashMap并发,一个map里面有一个Segment数组——即多个Segment,一个Segment有一个HashEntry数组——即多个HashEntry。每个Segment持 阅读全文
posted @ 2016-11-15 00:17 lacker 阅读(1335) 评论(0) 推荐(0) 编辑
摘要: 锁 锁就是一种状态,比如互斥锁:同一时间只能有一个线程拥有,可以使用一个整型值来标志当前的状态 0:表示没有现成占有锁 1:表示锁已经被占用 AbstractQueuedSynchronizer 实现Java中锁的基础,提供了一系列模板方法,程序员可以继承该类作为内部类实现自定义同步语义。 通过一个 阅读全文
posted @ 2016-11-10 00:50 lacker 阅读(728) 评论(0) 推荐(0) 编辑
摘要: JMM Java Memory Model,Java内存模型,属于语言级的内存模型 并发编程中存在的问题: 如何通信:用于线程之间交换信息。两种方式:共享内存,消息传递 如何同步:用于控制不同线程间操作发生的相对顺序。共享内存的同步是显式的,消息传递的同步是隐式的,因为消息发送必须在消息接受之前,已 阅读全文
posted @ 2016-11-03 20:41 lacker 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 线程同步基础 synchronized 和volatile是Java线程同步的基础。 synchronized 将临界区的内容上锁,同一时刻只有一个进程能访问该临界区代码 使用的是内置锁,锁一个时刻只能被一个线程持有,可以重入(表示一个处于synchronized代码中的线程可以进入另外一个使用sy 阅读全文
posted @ 2016-11-02 21:37 lacker 阅读(1190) 评论(0) 推荐(0) 编辑
摘要: AOP代理生成 AOP就是面向切面编程,主要作用就是抽取公共代码,无侵入的增强现有类的功能。从一个简单的spring AOP配置开始: 上面的配置涉及到AOP几个重要的概念: pointcut:切点,定义具体什么地方需要增强 advice:通知,定义在切点处进行哪些增强,也就是在切点处干的事 adv 阅读全文
posted @ 2016-10-23 15:05 lacker 阅读(1493) 评论(0) 推荐(2) 编辑