当前位置:   article > 正文

直击灵魂,美团架构师手撸并发原理笔记,由浅入深剖析JDK源码_美团技术 forkjoin

美团技术 forkjoin

并发编程这四个字想必大家最近都在网上看到过有很多的帖子在讨论。我们都知道并发编程可选择的方式有多进程、多线程和多协程。在Java中,并发就是多线程模式。而多线程编程也一直是一个被广泛而深入讨论的领域。如果遇到复杂的多线程编程场景,大多数情况下我们就需要站在巨人的肩膀上利用并发编程框架——JDK Concurrent包来解决相关线程问题。

Concurrent包很复杂吗?

相信很多人对于Concurrent并发包都是一知半解,更别说Concurrent包源码了。(大牛另当别论)可以说要是Concurrent包与其源码有一定的了解的话是完全可以避免重复造轮子,也能避免因为使用不当而掉到“坑”里,更不会说停留于一个“似是而非”的阶段。那么问题来了,如何学?不要慌,互联网雷锋(小编我)前段时间从一位美团的老哥手上弄到一份:Java并发JDK源码剖析宝典,看完之后有感而发,特来分享给大家!

限于文章篇幅原因,只能以截图的形式展示出来,有需要的小伙伴可以文末获取↓↓↓

多线程基础

线程的优雅关闭

  1. stop ( )与destory ()函数

  2. 守护线程

  3. 设置关闭的标志位

synchronized关键字

  1. 锁的对象是什么

  2. 锁的本质是什么

  3. synchronized实现原理

wait()与notify()

  1. 生产者-消费者模型

  2. 为什么必须和synchronized一起使用

  3. 为什么wait ()的时候必须释放锁

  4. wait () 与notify ()的问题

volatile关键字

  1. 64位写入的原子性(Half Write)

  2. 内存可见性

  3. 重排序:DCL问题

综合应用:无锁编程

  1. 一写一读的无锁队列:内存屏障

  2. 一写多读的无锁队列:volatile关键字

  3. 多写多读的无锁队列:CAS

  4. 无锁栈

  5. 无锁链表

Atomic类

Lock与Condition

互斥锁

读写锁

Condition

StampedLock

同步工具类

并发容器

BlockingQueue

  1. ArrayBlockingQueue

  2. LinkedBlockingQueue

  3. PriorityBlockingQuueue

  4. DelayQueue

  5. SynchronousQueue

BlockingDeque

CopyOnWrite

  1. CopyOnWriteArrayList

  2. CopyOnWriteArraySet

CncrertinkedQueue/Deque

CorcurrentHashMap

  1. JDK 7中的实现方式

  2. JDK 8中的实现方式

CnucrenskiplistMap/Set

  1. ConcurrentSkipListMap

  2. ConcurrentSkipListSet

线程池与Future

线程池的实现原理

线程池的类继承体系

ThreadPoolExector

  1. 核心数据结构

  2. 核心配置参数解释

  3. 线程池的优雅关闭

  4. 任务的提交过程分析

  5. 任务的执行过程分析

  6. 线程池的4种拒绝策略

Callable与Future

ScheduledThreadPoolExecutor

Executors工具类

ForkJoinPool

ForkJoinPool用法

工作窃取队列

工作窃取算法:任务的执行过程分析

  1. 顺序锁eqLock

  2. scanGuard解析

CompletableFuture

CompletableFuture内部原理

  1. CompletableFuture的构造:ForkJoinPool

  2. 任务类型的适配

  3. 任务的链式执行过程分析

  4. thenApply与thenApplyAsync的区别

任务的网状执行:有向无环图

限于文章篇幅原因,就展示到这里了,有需要的小伙伴可以查看下方名片↓↓↓ 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/758664
推荐阅读
相关标签
  

闽ICP备14008679号