| 课程大纲 | 记录 |
|---|---|
| 1 你真的了解并发吗? | |
| 2 理解多线程与并发的之间的联系与区别 | |
| 3 解析多线程与多进程的联系以及上下文切换所导致资源浪费问题 | |
| 4 学习并发的四个阶段并推荐学习并发的资料 | |
| 5 线程的状态以及各状态之间的转换详解 | |
| 6 线程的初始化,中断以及其源码讲解 | |
| 7 多种创建线程的方式案例演示(一)带返回值的方式 | |
| 8 多种创建线程的方式案例演示(二)使用线程池 | |
| 9 Spring对并发的支持:Spring的异步任务 | |
| 10 使用jdk8提供的lambda进行并行计算 | |
| 11 了解多线程所带来的安全风险 | |
| 12 从线程的优先级看饥饿问题 | |
| 13 从Java字节码的角度看线程安全性问题 | |
| 14 synchronized保证线程安全的原理(理论层面) | |
| 15 synchronized保证线程安全的原理(jvm层面) | |
| 16 单例问题与线程安全性深入解析 | |
| 17 理解自旋锁,死锁与重入锁 | |
| 18 深入理解volatile原理与使用 | |
| 19 JDK5提供的原子类的操作以及实现原理 | |
| 20 Lock接口认识与使用 | |
| 21 手动实现一个可重入锁 | |
| 22 AbstractQueuedSynchronizer(AQS)详解 | |
| 23 使用AQS重写自己的锁 | |
| 24 重入锁原理与演示 | |
| 25 读写锁认识与原理 | |
| 26 细读ReentrantReadWriteLock源码 | |
| 27 ReentrantReadWriteLock锁降级详解 | |
| 28 线程安全性问题简单总结 | |
| 29 线程之间的通信之wait/notify | |
| 30 通过生产者消费者模型理解等待唤醒机制 | |
| 31 Condition的使用及原理解析 | |
| 32 使用Condition重写wait/notify案例并实现一个有界队列 | |
| 33 深入解析Condition源码 | |
| 34 实战:简易数据连接池 | |
| 35 线程之间通信之join应用与实现原理剖析 | |
| 36 ThreadLocal 使用及实现原理 | |
| 37 并发工具类CountDownLatch详解 | |
| 38 并发工具类CyclicBarrier 详解 | |
| 39 并发工具类Semaphore详解 | |
| 40 并发工具类Exchanger详解 | |
| 41 CountDownLatch,CyclicBarrier,Semaphore源码解析 | |
| 42 提前完成任务之FutureTask使用 | |
| 43 Future设计模式实现(实现类似于JDK提供的Future) | |
| 44 Future源码解读 | |
| 45 Fork/Join框架详解 | |
| 46 同步容器与并发容器 | |
| 47 并发容器CopyOnWriteArrayList原理与使用 | |
| 48 并发容器ConcurrentLinkedQueue原理与使用 | |
| 49 Java中的阻塞队列原理与使用 | |
| 50 实战:简单实现消息队列 | |
| 51 并发容器ConcurrentHashMap原理与使用 | |
| 52 线程池的原理与使用 | |
| 53 Executor框架详解 | |
| 54 实战:简易web服务器(一) | |
| 55 实战:简易web服务器(二) | |
| 56 JDK8的新增原子操作类LongAddr原理与使用 | |
| 57 JDK8新增锁StampedLock详解 | |
| 58 重排序问题 | |
| 59 happens-before简单概述 | |
| 60 锁的内存语义 | |
| 61 volatile内存语义 | |
| 62 final域的内存语义 | |
| 63 实战:问题定位 |