导图社区 多线程
这是一篇关于多线程的思维导图。包括AQS,Atomic原子类,volatile,synchronize,实现方式等内容。
这是一篇关于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
伯赞学习技巧
多线程
threadlocal
实现线程独有变量
ThreadLocalMap<ThreadLocal,Object>
set
get
remove
内存泄露
key弱引用,value强引用,key=null,value无法被GC回收
手工remove()
volatile
不加关键字

加关键字
变量可见性
内存屏障
阻止屏障两侧指令重排
强制将高速缓存/写缓存中脏数据写入主存,或者让缓存相应的数据失效
不会发生阻塞
修饰变量
synchronize
重入锁
使用方式
修饰实例方法
给象实例加锁
修饰静态方法
给当前类加锁
作用于类的所有对象
修饰代码块
给指定对象加锁
底层实现
monitorenter
指向同步代码块开始位置
从锁对象头中获取锁
获取锁成功计数器+1
monitorexit
指向同步代码块结束位置
释放锁
计数器设置为0
锁状态
无锁
偏向锁
轻量级锁
重量级锁
升降级
升级
降级
Stop The World期间
JVM进入安全点的时候
检查闲置锁降级
非公平锁
ReentrantLock
公平锁,非公平锁
等待可中断
lock.lockInterruptibly
可实现公平锁
可实现选择性通知
线程生命周期及状态
NEW
RUNNABLE
BLOCKED
WAITING
TIME_WAITING
TERMINATED
实现方式
new Thread
实现Runnable接口
线程池
好处
降低资源消耗
提高响应速度
提高线程的可管理性
ThreadPoolExecutor
原理
Atomic原子类
基本类型
AtomicInteger
CAS (compare and swap)
native
AtomicLong
AtomicBoolean
引用类型
AtomicReference
AtomicStampedReference
AtomicMarkableReference
数组类型
AtomicIntegerArray
AtomicLongArray
AtomicReferenceArray
对象属性修改类型
AtomicIntegerFieldUpdater
AtomicLongFieldUpdater
AQS
资源空闲
设置请求资源线程有效
设置资源状态锁定
资源占用
将线程加入CLH队列等待资源释放