网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)

文章目录

  • 第一章 多线程并发编程
    • 第二节 线程安全问题
      • 1.2.1 线程安全之可见性问题
        • 多线程中的问题
        • 从内存结构到内存模型
        • 工作内存缓存
        • 指令重排序
        • 内存模型的含义
        • Shared Variables共享变量描述
        • 线程操作的定义
        • 对于同步的规则定义
        • happens-before先行发生原则
        • final在JMM中的处理
        • Word Tearing字节处理
        • double和long的特殊处理
        • volatile关键字总结
      • 1.2.2 线程安全之原子操作
        • 竞态条件与临界区
        • 共享资源
        • 不可变对象
        • CAS机制
        • J.U.C包内的原子操作封装类
        • CAS的三个问题
      • 1.2.3 JAVA 锁相关
        • 同步关键字synchronized
          • 同步关键字加锁原理
            • 轻量级锁
            • 偏向锁到轻量级锁
            • 重量级锁-监视器(monitor)
        • Lock的核心API
        • ReadWriteLock
    • 第三节 J.U.C并发编程包详解
      • 1.3.1 AQS抽象队列同步器

猛戳这里快速前往学习笔记(一)

第一章 多线程并发编程

第二节 线程安全问题

1.2.1 线程安全之可见性问题

多线程中的问题

  1. 所见非所得
  2. 无法肉眼去检测程序的准确性
  3. 不同的运行平台有不同的表现
  4. 错误很难重现

从内存结构到内存模型

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第1张图片

工作内存缓存

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第2张图片

指令重排序

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第3张图片

内存模型的含义

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第4张图片

Shared Variables共享变量描述

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第5张图片

线程操作的定义

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第6张图片

对于同步的规则定义

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第7张图片

happens-before先行发生原则

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第8张图片

final在JMM中的处理

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第9张图片

Word Tearing字节处理

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第10张图片

double和long的特殊处理

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第11张图片

volatile关键字总结

1.2.2 线程安全之原子操作

竞态条件与临界区

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第12张图片

共享资源

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第13张图片

不可变对象

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第14张图片

CAS机制

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第15张图片
有兴趣的童鞋可以了解下Unsafe的源码,类似于直接操作内存的方法。

J.U.C包内的原子操作封装类

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第16张图片

CAS的三个问题

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第17张图片
网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第18张图片

1.2.3 JAVA 锁相关

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第19张图片

同步关键字synchronized

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第20张图片
网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第21张图片

同步关键字加锁原理

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第22张图片

轻量级锁

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第23张图片

偏向锁到轻量级锁

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第24张图片

重量级锁-监视器(monitor)

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第25张图片

Lock的核心API

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第26张图片

ReadWriteLock

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第27张图片

第三节 J.U.C并发编程包详解

1.3.1 AQS抽象队列同步器

网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)_第28张图片
学习中。。。未完待续

你可能感兴趣的:(Java高级开发工程师)