并发复习笔记

本文是关于Java并发编程的复习笔记,重点讨论了并发的三大特性:原子性、可见性和有序性。内容涵盖CPU缓存行、volatile关键字的作用、JMM(Java内存模型)、内存屏障、MESI协议、synchronized关键字的锁升级机制以及AQS(AbstractQueuedSynchronizer)框架。同时,提到了ReentrantLock的优势和CAS操作在并发控制中的应用。
摘要由CSDN通过智能技术生成

首先,在我们的脑海中应该有一些概念

  • CPU缓存行:64bytes,是cpu读取内存数据的最小单位,就是说每次从内存中读取时,读取一个或多个缓存行大小的数据
  • 并发三大特性:
    • 原子性:一个或多个操作,要么全部执行,要么全部不执行
    • 可见性:一个线程修改共享变量,其他线程可以看到修改的值
    • 有序性:程序执行顺序按照代码先后顺序执行
  • 内核空间/用户空间,内核态/用户态,内核级线程(KLT)/用户级线程(ULT)
    • 内核空间和用户空间是针对于内存划分的。操作系统所在区域是内核空间,用户进程所在区域是用户空间
    • 内核态和用户态是针对于CPU来做区分的。
    • KLT和ULT主要时针对于是由谁管理这些线程来区分的。线程交给内核管理,就是KLT;线程由用户进程自己去管理,就是ULT。

其次,围绕并发三大块内容进行整理

  • volatile关键字

    • JMM: java内存模型,是一个抽象的概念,是为了方便理解多线程下各个线程的情况工作的情况。分为工作内存和主内存。线程工作时,变量从主内存拷贝到工作内存中,线程操作变量都是操作的工作内存中的副本。所以会有线程安全问题。
      在这里插入图片描述

      </
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值