Java并发读书笔记
lllllluuuuy
这个作者很懒,什么都没留下…
展开
-
Day1并发
笔记减少上下文切换 无锁的并发编程 CAS算法 减少线程 使用协程序。 死锁==进程拿到了锁但是,因为异常情况造成锁没有释放== 避免一个线程同时获得多个锁 避免一个线程在锁内占用多个资源,保证每个锁只占用一个资源。 使用定时锁来代替内部锁的机制。 对于数据库锁,加锁和解锁都必须在一个数据库里面,否则会出现解锁失败。 资源限制==硬件上或者软件上的资源限制==++使用线程不一定快,要考虑上下文切换原创 2017-05-25 11:03:26 · 338 阅读 · 0 评论 -
Day2并发
记录基于保守策略的JMM内存屏障插入策略 在每个volatile写操作的前面插入一个StoreStore屏障。 保障所有的普通写在volatile写之前刷新到主内存。 在每个volatile写操作的后面插入一个StoreLoad屏障。 避免volatile写与后面可能有的volatile读/写操作重排序 在每个volatile读操作的后面插入一个LoadLoad屏障。 LoadLoad屏障用来原创 2017-05-26 11:38:06 · 230 阅读 · 0 评论 -
Day3
队列同步器(AQS)AbstractQueuedSynchronizer锁是面向使用者的,它定义了使用者与锁交互的接口(比如可以允许两个线程并行访问),隐藏了实现细节;同步器面向的是锁的实现者,它简化了锁的实现方式,屏蔽了同步状态管理、线程的排队、等待与唤醒等底层操作。锁和同步器很好地隔离了使用者和实现者所需关注的领域。模板方法 独占式获取与释放同步状态 共享式获取与释放同步状态 查询同步队列中的等原创 2017-05-28 15:31:48 · 193 阅读 · 0 评论 -
Day4
线程池 降低资源消耗 提高响应速度 提高线程的可管理性 线程池中的线程执行任务分两种情况 在execute()方法中创建一个线程时,会让这个线程执行当前任务。 这个线程执行完上图中1的任务后,会反复从BlockingQueue获取任务来执行。 线程池时需要参數 corePoolSize(线程池的基本大小) runnableTaskQueue(任务队列) ArrayBlockingQueue:是一个原创 2017-05-29 10:29:50 · 211 阅读 · 0 评论 -
ConcurrentHashMap
http://www.infoq.com/cn/articles/ConcurrentHashMap转载 2017-06-07 15:10:26 · 223 阅读 · 0 评论