《 Java并发编程实战 》专栏的回顾

背景

回顾一下《Java并发编程实战》这个专栏,温度而知新。由于专栏内容较多,本文知识专栏的简单介绍和回顾。对了每节课下面的评论也是不错的。

课程目的

帮助那些掌握了Java业务开发能力的基础,每天苦于CURD但希望能够实现技术进阶的人。Java的并发是区分一个java工程师段位的不错的方法,所以不少大厂都会偏向拥有相关能力的人,实际上这些大厂工作也是95%跟并发没关系,但就怕那5%你不会,把事情搞砸了。

并发核心问题

  • 分工,如何高效的拆解任务并分配给线程
  • 同步,线程之间如何协作
  • 互斥,保证同一时刻只容许一个线程访问公共资源

在这里插入图片描述

主要内容

理论基础

  • 并发问题的主要源头

    • 缓存导致的可见性问题
    • 线程切换带来的原子性问题
    • 编译优化带来的有序性问题
  • Java 内存模型,Happens-Before规则
    Happens-Before 并不是说前面一个操作发生在后续操作的前面,它真正要表达的是:前面一个操作的结果对后续操作是可见的。就像有心灵感应的两个人,虽然远隔千里,一个人心之所想,另一个人都看得到。Happens-Before 规则就是要保证线程之间的这种“心灵感应”。所以比较正式的说法是:Happens-Before 约束了编译器的优化行为,虽允许编译器优化,但是要求编译器优化后一定遵守 Happens-Before 规则。

  • Java线程

  • 互斥锁
    基本覆盖了Java并发相关的 所有理论知识,通过这部分可以看到全景。

工具类

  • Lock & Condition
  • 读写锁ReadWriteLock
  • CountDownLatch和CyclicBarrier,协同多线程
  • 并发容器
  • Executor与线程池
  • 原子类
  • Future相关(Future,CompletableFuture,CompletionService)

介绍的内容非常的实用,没有炫技的成分,但每项有又深入细节,不足了不少的知识短板。

并发模式设计

  • Copy-on-Write模式
  • Worker Thread模式
  • 生产者-消费者模式

案例分析

案例相关内容也是非常精彩,首先介绍了 Guava的限流器,然后是高性能网络应用框架Netty,高性能队列Disruptory, 高性能连接池HiKariCP 。

每个章节都对较为核心的部分的代码进行了了分析,确实做到了,沉下去,看本质。

参考

本文内容大量参考《Java并发编程实战》,https://time.geekbang.org/column/intro/159

发布了142 篇原创文章 · 获赞 70 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/zhaoenweiex/article/details/101363977