上帝视角
    • 畅销套餐
    • 精选套餐
    • 人气套餐
    • 尊享套餐
    • 高薪套餐
Java Web全栈工程师之路【买视频送书】
XML需知需会:Java、C#、Python多种语言解析XML文档
67660人学习
¥49.00
jQuery必知必会:老程序员手把手带您完成一个【MyNotes】Web前端项目
45168人学习
¥49.00
师傅带徒弟学Java Web:老程序员带您完成一个【网上商城】Web项目
131666人学习
¥268.00
更 多 9 门 课 程
Java基础入门项目实战专题【买课送书】
师傅带徒弟学Java第1篇 Java基础视频课程
645336人学习
¥29.00
师傅带徒弟学Java第2篇 【Java】面向对象视频课程
524947人学习
¥49.00
师傅带徒弟学Java第4篇项目实战视频课程1——【Java】PetStore宠物商店
320207人学习
¥159.00
更 多 5 门 课 程
Java软件开发全套课程(笔记+项目案例)
SpringCloud微服务快速入门实战课程【2020版】
6383人学习
¥48.00
Redis入门视频课程(适合初学者的教程)
25121人学习
¥29.00
Dubbo快速入门视频课程(通俗易懂)
28357人学习
¥29.00
更 多 42 门 课 程
鸟哥门徒课程专题(Java全套+Web前端全套+数据库全套)
PS快速入门视频教程
3728人学习
¥39.00
全套精讲C语言基础视频课程【答疑+课件下载】
4253人学习
¥78.00
Java基础与提高全套视频上卷[IDEA版本]
4225人学习
¥198.00
更 多 59 门 课 程
鸟哥门徒课程专题(Java全套+Web前端全套+数据库全套)
PS快速入门视频教程
3728人学习
¥39.00
全套精讲C语言基础视频课程【答疑+课件下载】
4253人学习
¥78.00
Java基础与提高全套视频上卷[IDEA版本]
4225人学习
¥198.00
更 多 59 门 课 程
  • 课程介绍
  • 课程大纲

适合人群:

具有JAVA和并发编程基础的同学

你将会学到:

从代码层次讲解JUC高并发包及AQS框架中各个子类的实现和设计思想

课程简介:

什么是AQS
   一套JAVA并发的库,位于java.util.concurent包下。
     AQS=abstractqueuedsynchronizer 翻译就是 抽象排队的同步器, 抽象是因为该类是所有该系列锁的实质实现和基础,基于抽象模板设计模式
     父类实现基础操作,子类利用该组基础API实现各种丰富的锁

具体AQS锁包括哪些
    主要包括:ReentrantLock,CyclicBa nbrrier,CountDownLatch 等,都是通过代理基于继承AQS类的子类实现。

AQS 如何实现,为什么需要AQS

    AQS是用于高并发场景,普通并发使用CAS方式就可以实现,单纯采用CAS方式的锁叫做自旋锁,自旋锁其实就是死循环,多个线程在一段死循环中尝试获取锁,
    随着并发量升高,线程个数增加,如果仍然都在死循环中竞争锁会导致CPU的浪费,常规的解决办法就是增加队列,让线程排队通过临界区,将排队的线程暂停

AQS提供两个队列  运行队列和条件队列
  运行队列是基本队列,条件队列比较灵活用于实现更加复杂的锁应用,如CyclicBarrier,CountDownLatch 等,主要用于控制基于条件变化触发线程在两个队列之间的转移。其中条件队列一般只用于存放等待信号的线程,不会被执行,事件触发后才将该队列中的节点转移到运行队列中进行执行。


ReentrantLock 包括公平锁和非公平锁两种模式,差别就在于新的到达临界区的线程第一次获取锁的时候能否不排队进行一次锁竞争,公平锁是绝对的FIFO,非公平锁的区别仅仅是第一次获取锁时候可以跳过排队环节进行一次锁获取,如果获取成功则执行临界代码,否则获取锁失败后和公平锁剩余的逻辑完全一样


ThreadLocal 类其实是个工具类,该类的对象可以通过捕获当前线程,并在线程的

nullnull


两个预留位置上放置HASHMAP 来存取或者更新一个对象,来实现将信息放置在线程对象的内部。

该类和线程是多对多的关系,多个该类的对象可以操作同一个线程的HASHMAP,每个对象也可以操作多个线程的HASHMAP,该HASHMAP通过线性探测法实现,具体信息详见第二章第1节



展开更多

课程大纲-AQS 高并发框架源码讲解

在线
客服
APP
下载

下载Android客户端

下载iphone 客户端

官方
微信

关注官方微信

返回
顶部