多线程大纲

注: 本文章主要参考汪文君大佬的视频

第一阶段

  1. 线程定义
  2. 创建并启动线程的方式
  3. 线程生命周期以及start方法源码剖析
  4. 多线程方式模拟银行排队叫号
  5. thread与runnable
  6. 多线程与JVM内存结构的关系,虚拟机栈实验
  7. Thread构造函数StackSize
  8. Daemon线程的创建以及使用场景分析
  9. 线程ID,优先级讲解
  10. join方法、案例
  11. Interrupt(重点)
  12. 关闭线程的三种方式
  13. Synchronized(重点)
  14. this锁、class锁
  15. 死锁
  16. 线程间的通信
  17. 生产者与消费者(线程假死)
  18. wait和sleep的本质区别是什么
  19. 自定义显式锁Lock
  20. 注入钩子程序
  21. ThreadGroup
  22. 线程池原理与自定义线程池(拒绝策略、自动扩充、闲时回收)

链接

  • 线程定义与启动方式

第二阶段

  1. Singleton模式,以及各种优缺点
  2. waitSet
  3. volatile
  4. Java内存模型以及CPU缓存不一致问题的引入
  5. CPU以及CPU缓存的结构,解决高速缓存一致性问题的两种方案介绍
  6. 并发编程的三个重要概念,原子性,可见性,有序性
  7. 指令重排序,happens-before规则精讲
  8. 多线程-观察者设计模式、线程的生命周期
  9. 单线程执行设计模式,有一个门,始终只能一个人通过
  10. 多线程读写锁分离设计模式
  11. 多线程不可变对象设计模式Immutable
  12. 多线程Future设计模式详细介绍
  13. Guarded Suspension设计模式
  14. ThreadLocal设计模式
  15. 多线程运行上下文设计模式-ThreadLocal
  16. 多线程Balking设计模式
  17. 多线程Producer and Consumer设计模式
  18. 多线程Count Down设计模式
  19. 多线程Thread-Per-Message设计模式
  20. 多线程Two Phase Termination设计模式
  21. 多线程Worker-Thread设计模式
  22. 多线程Active Objects设计模式(接受异步消息的主动对象)
  23. 类加载的过程以及类主动使用的六种情况、被动引用 详细介绍
  24. ClassLoader加载阶段发生的故事
  25. ClassLoader链接阶段(验证,准备,解析)过程详细介绍
  26. ClassLoader初始化阶段详细介绍clinit
  27. JVM内置三大类加载器的详细介绍
  28. 自定义类加载器ClassLoader
  29. ClassLoader父委托机制详细介绍
  30. 加密解密类加载演示
  31. ClassLoader打破双父亲委托机制,重写loadClass
  32. ClassLoader命名空间,运行时包,类卸载详细介绍
  33. 线程上下文类加载器以及数据库驱动案例分析

第三阶段

  1. AtomicInteger
  2. 利用CAS构造一个TryLock自定义显式锁
  3. AtomicBoolean源码分析
  4. AtomicReference详解,CAS算法带来的ABA问题详解
  5. AtomicStampReference详解,解决CAS带来的ABA问题
  6. AtomicIntegerArray,AtomicLongArray,AtomicReferenceArray讲解
  7. AtomicIntegerFieldUpdater,AtomicLongFieldUpdater,AtomicReferenceFie
  8. AtomicXXXFieldUpdater源码分析及使用场景分析
  9. sun.misc.Unsafe介绍以及几种Counter方案性能对比
  10. 一个JNI程序的编写,通过Java去调用C,C++程序
  11. Unsafe中的方法使用,一半是天使,一半是魔鬼的Unsafe
  12. Unsafe背后的汇编指令,牛逼男人背后的女人
  13. CountDownLatch经典案例讲解
  14. CyclicBarrier工具的使用场景介绍
  15. CyclicBarrier vs CountDownLatch
  16. Exchanger工具的使用以及常见问题分析
  17. Semaphore工具的介绍以及借助于Semaphore构造一个Lock
  18. Lock&ReentrantLock详细讲解
  19. ReadWriteLock&ReentrantReadWriteLock详细讲解
  20. Condition
  21. JDK8-StampedLock详细介绍
  22. ForkJoin框架之RecursiveTask
  23. ForkJoin框架之RecursiveAction
  24. Phaser工具
  25. Executor&ExecutorService讲解
  26. ThreadPoolExecutor七大构造参数详细讲解
  27. ThreadPoolExecutor关闭(很重要)
  28. newCache&newFixed&single ExecutorService详解
  29. newWorkStealingPool ExecutorService详解
  30. Scheduler的前奏Timer&Linux Crontab & quartz比较
  31. ExecutorService API详细讲解
  32. ExecutorService 四大内置拒绝策略深入探究
  33. ExecutorService API详细讲解
  34. Future&Callable详细讲解
  35. CompletionService详细介绍
  36. ScheduledExecutorService详细讲解
  37. CompletableFuture的使用精讲
  38. LinkedList和有序LinkedList的实现
  39. 跳表数据结构的Java实现
  40. ArrayBlockingList详细讲解
  41. PriorityBlockingQueue详细讲解
  42. LinkedBlockingQueue详细讲解
  43. SynchronousQueue详细讲解
  44. DelayQueue详细讲解
  45. LinkedBlockingDeque详细讲解
  46. LinkedTransferQueue详细讲解
  47. 七大BlockingQueue的特点总结,可以不用详细看
  48. ConcurrentHashMap性能测试以及JDK1.7原理讲解
  49. ConcurrentHashMap性能测试以及JDK1.8原理讲解
  50. ConcurrentSkipListMap详细讲解
  51. ConcurrentSkipListMap vs ConcurrentHashMap
  52. ConcurrentLinkedQueue&ConcurrentLinkedDeque
  53. CopyOnWriteArrayList&CopyOnWriteArraySet源码分析
  54. ConcurrentLinkedList vs CopyOnWriteArrayList vs SynchronizedList性能对
  55. 实现一个高并发的无锁队列(Lock-Free)
  56. 总结与回顾

其他

  • [并发理论基础] 08 | 管程:并发编程的万能钥匙

注意事项

  • Interrupt 仅仅是改变"中断标志位",当线程不阻塞,需主动查询标志位,当线程阻塞时,遇见"中断标志位",会抛出异常
  • Interrupt 对某些情况不适用。。个别死锁、获取锁、传统I/O、
  • 逻辑功能中,一般不会用到 interrupt 打断

链接

并发编程网-多线程
Java内存模型以及happens-before规则
并发编程网-内存模型

通俗趣味讲解线程模式

你可能感兴趣的:(并发编程,大纲)