
《实战 Java 高并发程序设计》
文章平均质量分 92
《实战 Java 高并发程序设计》
bm1998
这个作者很懒,什么都没留下…
展开
-
《实战 Java 高并发程序设计》笔记——第5章 并行模式与算法
文章目录5.1 探讨单例模式5.2 不变模式5.3 生产者-消费者模式 声明: 本博客是本人在学习《实战 Java 高并发程序设计》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。 本博客已标明出处,如有侵权请告知,马上删除。 由于并行程序设计比串行程序复杂得多。因此,我强烈建议大家可以熟悉和了解一些常见的设计方法。就好像练习武术一样,一招一式都是要经过学习的。如果自己胡乱打一气,效果不见得好。前人会总结一些武术套路,对于初学者来说,不需要发挥自己的想象力,只要按照武术套路出拳就可以了。等到练到了一原创 2021-01-02 14:06:23 · 209 阅读 · 0 评论 -
《实战 Java 高并发程序设计》笔记——第4章 锁的优化及注意事项(二)
文章目录4.4 无锁4.4.1 与众不同的并发策略:比较交换(CAS)4.4.2 无锁的线程安全整数:AtomicInteger4.4.3 Java 中的指针:Unsafe 类4.4.4 无锁的对象引用:AtomicReference4.4.5 带有时间戳的对象引用:AtomicStampedReference4.4.6 数组也能无锁:AtomicIntegerArray4.4.7 让普通变量也享受原子操作:AtomicIntegerFieldUpdater4.4.8 挑战无锁算法:无锁的 Vector 实原创 2020-12-31 00:31:23 · 237 阅读 · 0 评论 -
《实战 Java 高并发程序设计》笔记——第4章 锁的优化及注意事项(一)
文章目录4.1 有助于提高 “锁” 性能的几点建议4.1.1 减小锁持有时间4.1.2 减小锁粒度4.1.3 读写分离锁来替换独占锁4.1.4 锁分离4.1.5 锁粗化4.2 Java 虚拟机对锁优化所做的努力4.2.1 锁偏向4.2.2 轻量级锁4.2.3 自旋锁4.2.4 锁消除4.3 人手一支笔:ThreadLocal4.3.1 ThreadLocal的简单使用4.3.2 ThreadLocal 的实现原理4.3.3 对性能有何帮助 声明: 本博客是本人在学习《实战 Java 高并发程序设计》后整理原创 2020-12-28 22:47:36 · 243 阅读 · 0 评论 -
《实战 Java 高并发程序设计》笔记——第3章 JDK 并发包(三)
文章目录3.3 不要重复发明轮子:JDK 的并发容器3.3.1 超好用的工具类:并发集合简介3.3.2 线程安全的 HashMap3.3.3 有关 List 的线程安全3.3.4 高效读写的队列:深度剖析 ConcurrentLinkedQueue3.3.5 高效读取:不变模式下的 CopyOnWriteArrayList3.3.6 数据共享通道:BlockingQueue3.3.7 随机数据结构:跳表(SkipList) 声明: 本博客是本人在学习《实战 Java 高并发程序设计》后整理的笔记,旨在方便原创 2020-12-31 16:27:58 · 269 阅读 · 0 评论 -
《实战 Java 高并发程序设计》笔记——第3章 JDK 并发包(二)
文章目录3.2 线程复用:线程池3.2.1 什么是线程池3.2.2 不要重复发明轮子:JDK 对线程池的支持1. 固定大小的线程池2. 计划任务3.2.3 刨根究底:核心线程池的内部实现3.2.4 超负载了怎么办:拒绝策略3.2.5 自定义线程创建:ThreadFactory3.2.6 我的应用我做主:扩展线程池3.2.7 合理的选择:优化线程池线程数量3.2.8 堆栈去哪里了:在线程池中寻找堆栈3.2.9 分而治之:Fork/Join 框架 声明: 本博客是本人在学习《实战 Java 高并发程序设计》后原创 2020-12-25 09:19:14 · 178 阅读 · 0 评论 -
《实战 Java 高并发程序设计》笔记——第3章 JDK 并发包(一)
文章目录3.1 多线程的团队协作:同步控制3.1.1 synchronized 的功能扩展:重入锁中断响应锁申请等待限时公平锁3.1.2 重入锁的好搭档:Condition 条件3.1.3 允许多个线程同时访问:信号量(Semaphore)3.1.4 ReadWriteLock 读写锁3.1.5 倒计时器:CountDownLatch3.1.6 循环栅栏:CyclicBarrier3.1.7 线程阻塞工具类:LockSupport 声明: 本博客是本人在学习《实战 Java 高并发程序设计》后整理的笔记,原创 2020-12-23 23:26:54 · 183 阅读 · 0 评论 -
《实战 Java 高并发程序设计》笔记——第2章 Java 并行程序基础(二)
文章目录2.3 volatile 与 Java 内存模型(JMM)2.4 分门别类的管理:线程组2.5 驻守后台:守护线程(Daemon)2.6 先干重要的事:线程优先级2.7 线程安全的概念与 synchronized2.8 程序中的幽灵:隐蔽的错误2.8.1 无提示的错误案例2.8.2 并发下的 ArrayList2.8.3 并发下诡异的 HashMap2.8.4 初学者常见问题:错误的加锁 声明: 本博客是本人在学习《实战 Java 高并发程序设计》后整理的笔记,旨在方便复习和回顾,并非用作商业用途原创 2020-12-22 19:45:30 · 219 阅读 · 0 评论 -
《实战 Java 高并发程序设计》笔记——第2章 Java 并行程序基础(一)
文章目录2.1 有关线程你必须知道的事2.2 初始线程:线程的基本操作2.2.1 新建线程2.2.2 终止线程2.2.3 线程中断2.2.4 等待(wait)和通知(notify)2.2.5 挂起(suspend)和继续执行(resume)线程2.2.6 等待线程结束(join)和谦让(yield) 声明: 本博客是本人在学习《实战 Java 高并发程序设计》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。 本博客已标明出处,如有侵权请告知,马上删除。 我们已经探讨为什么必须面对并行程序这样复杂的程原创 2020-12-21 21:59:33 · 200 阅读 · 0 评论 -
《实战 Java 高并发程序设计》笔记——第1章 走入并行世界(二)
文章目录1.4 有关并行的两个重要定律1.4.1 Amdahl 定律1.4.2 Gustafson 定律1.4.3 Amdahl 定律和 Gustafson 定律是否相互矛盾1.5 回到 Java:JMM1.5.1 原子性(Atomicity)1.5.2 可见性(Visibility)1.5.3 有序性(Ordering)1.5.4 哪些指令不能重排:Happen-Before 规则 声明: 本博客是本人在学习《实战 Java 高并发程序设计》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。 本博客已原创 2020-12-19 00:22:17 · 215 阅读 · 0 评论 -
《实战 Java 高并发程序设计》笔记——第1章 走入并行世界(一)
文章目录1.1 何去何从的并行计算1.1.1 忘掉那该死的并行1.1.2 可怕的现实:摩尔定律的失效1.1.3 柳暗花明:不断地前进1.1.4 光明或是黑暗1.2 你必须知道的几个概念1.2.1 同步(Synchronous)和异步(Asynchronous)1.2.2 并发(Concurrency)和并行(Parallelism)1.2.3 临界区1.2.4 阻塞(Blocking)和非阻塞(Non-Blocking)1.2.5 死锁(Deadlock)、饥饿(Starvation)和活锁(Liveloc原创 2020-12-18 19:27:42 · 272 阅读 · 0 评论