导图社区 并发
这是一篇关于并发的思维导图,包括线程,进程,AQS方面的内容,可供大家参考,有不对的地方可以指正,谢谢。
提示: 本内容由社区用户上传并分享。平台不对内容的真实性、合法性、知识产权归属及是否侵害第三方权利进行事前审核或保证。本内容可能包含受版权保护的图片、字体或其他第三方素材,使用前请自行确认授权范围。
这是一篇关于JVM的思维导图,JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的
这是一篇关于Mybatis的思维导图,Java开发中常用SSM(Spring,SpringMVC,Mybatis)组合中的Mybatis框架的使用要点
这是一篇关于Mysql的思维导图,MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
社区模板帮助中心,点此进入>>
安全教育的重要性
个人日常活动安排思维导图
西游记主要人物性格分析
17种头脑风暴法
如何令自己更快乐
头脑风暴法四个原则
思维导图
第二职业规划书
记一篇有颜又有料的笔记-by babe
伯赞学习技巧
并发
线程
一个程序运行时,可以有多个线程处理任务
程序计数器
虚拟机栈
本地方法栈
进程
系统运行一个程序,产生一个进程
堆
方法区
运行时常量池
元空间(>=jdk1.8)
AQS
用来构建锁和同步器的框架
原理
被请求资源空闲
设置线程为有效线程
设置资源为占用状态
被请求资源占用
CLH队列
虚拟双向队列
将线程放入队列阻塞等待被唤醒
CAS控制int状态成员变量
资源共享方式
Exclusive(独占)
只有一个线程可以执行
公平锁(ReentrantLock)
线程按照队列顺序,先到先得锁
非公平锁(ReentrantLock)
利用CAS抢2次锁,抢不到继续等待
Share(共享)
多个线程同时执行
Semaphore
CountDownLatch
同步器
继承AbstractQueuedSynchronizer
重写isHeldExclusively()//该线程是否正在独占资源。只有用到condition才需要去实现它。
tryAcquire(int)//独占方式。尝试获取资源,成功则返回true,失败则返回false。
tryRelease(int)//独占方式。尝试释放资源,成功则返回true,失败则返回false。
tryAcquireShared(int)//共享方式。尝试获取资源。负数表示失败;0表示成功,但没有剩余可用资源;正数表示成功,且有剩余资源。
tryReleaseShared(int)//共享方式。尝试释放资源,成功则返回true,失败则返回false。