Java并发编程(多线程)知识体系,从入门到放弃

本文详细介绍了Java并发编程的基础知识,包括并发与并行的区别,线程的生命周期,Java内存模型JMM,并发的三大特性,以及各种锁机制和线程安全问题。此外,还涵盖了线程间通信、并发工具集如synchronized和Lock,以及并发设计模式等核心概念。
摘要由CSDN通过智能技术生成

Java并发编程的知识多且杂,全部学习有一定的难度,这里先列一下大纲,感兴趣的童鞋可以按照发布文章的顺序逐篇学习,如果对你有帮助,赞一个就是对我最大的认可和鼓励(*^▽^*)。

https://www.processon.com/v/64afafaee26df07aec991842

  1. 并发理论基础
    1. 并发&并行
    2. 线程基础
      1. 进程&线程
      2. 线程创建方式(4种)
      3. 线程的生命周期
        1. Java层面(6) - New、Runable、Waiting、Timed_waiting、Blocked、Terminate
        2. OS层(5)- 新建、就绪(可运行)、运行、休眠、终结
      4. ThreadLocal
        1. Java中的引用类型-强、软、弱、虚
        2. 定义/原理
        3. 内存溢出问题
      5. 线程常用方法 -- start、yield、sleep、interrupt、isInterrupt、interrupted、stop、destory
      6. 线程终止的方式
        1. stop 强制终止,可能会造成不可预知的问题
        2. 两阶段式终止线程 - 设置中断标记位、符合条件调用interrupt终止
      7. 线程休眠的方式
        1. Threed.sleep()
        2. Object.wait()
        3. LockSupport.park()
      8. 线程间通信方式
      9. Monitor(管程)
    3. 多线程模型
      1. 并发三大特性(并发编程bug的源头)
        1. 可见性
        2. 有序性
        3. 原子性
      2. JMM(Java内存模型)
        1. JMM定义/作用
        2. 内存交互的八大原子操作
        3. JMM和硬件内存架构的关系
        4. JMM的内存可见性保证
      3. volatile深入解读
        1. 作用
        2. 4种内存屏障
        3. 保证可见性的原理
        4. 保证有序性的原理
      4. CAS原理
        1. 定义/原理(三个操作数:内存位置、预期原值、新值)
        2. 存在的问题
      5. happens-before原则
      6. CPU高速缓存架构
        1. 缓存一致性协议
        2. 伪共享问题
  2. 线程安全
    1. 线程安全问题
      1. 运行结果错误
      2. 活跃性问题(死锁、活锁、饥饿)
      3. 发布未初始化完成的对象(DCL模式)
    2. 线程安全解决方案
      1. 无锁实现方案
        1. 局部变量
        2. final关键字修饰
        3. ThreadLocal
        4. CAS(原子变量)
      2. 有锁的解决方案
        1. 锁分类
          1. 独占锁/共享锁
          2. 公平锁/非公平锁
          3. 可重入锁/不可重入锁
          4. 乐观锁/悲观锁
          5. 可中断锁/不可中断锁
          6. 自旋锁/非自旋锁
          7. synchronized的三种锁状态-偏向锁、轻量级锁、重量级锁
        2. 内置锁synchronized
          1. 临界区
          2. 同步/互斥
          3. 使用方式
          4. 虚假唤醒
          5. 底层原理
          6. 锁升级机制
          7. 锁优化
          8. synchronized和volatile
        3. Lock
    3. AQS
      1. 什么是AQS
      2. 如何实现一个同步器
      3. 基于AQS实现的同步器
        1. ReentrantLock
        2. ReentrantReadWriteLock
        3. CountDownLatch
        4. Semaphore
        5. CyclicBarrier
  3. 并发工具集
    1. atomic包下的原子类
    2. 线程池
    3. Fork/Join
    4. Future
    5. 基于AQS实现的同步器
    6. 并发容器
      1. ConcurrentHashMap
      2. Collections.synchronizedList()
      3. Collections.synchronizedSet()
      4. BlockedQueue
    7. 高性能内存队列 Disruptor
  4. 并发设计模式
    1. 终止线程的设计模式
    2. 避免共享的设计模式
    3. 多线程版本的if设计模式
    4. 多线程分工模式
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值