导图社区 java并发
java并发模型,简单知识结构,包括synchronized,并发结构,并发线程池,原子类
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
并发concurrent
锁
synchronized
monitorenter
monitorexit
升级/降级
偏斜锁
fast_enter
mark word
轻量锁
slow_enter
cas技术
重量锁
升级前去掉mark word信息
自旋锁
降级
safePointer
lock
ReenterLock
fairness
condition
await
signal
stampLock
ReenterWriteReadLock
实际上实现了AQS
thread
状态
new
runnable
blocked
wait
time_wait
terminated
方法
start
join
yield
notify
notifyAll
interrupted
onSpinWait; java9
daemon
threadlocal
死锁
定义
例子;synchronized
缩小锁的粒度
分析锁获取的流程和关系
带时间的获取锁的方法,lock
静态代码分析
代码审核
诊断
jstack工具
jconsole工具
ThreadMxBean类工具
工具
同步结构
semaphore
计数器
acquire/release
countDownlatch
countdown/await
闭锁,不能重复
cyclicBarrier
循环栅栏
并发队列
blocking
有界无界
有界
ArrayBlockingQueue
内存开销较大
无界
PriorityBlockingQueue
DelayQueue
linkedTransferQueue
指定界限
linkedBlockingQueue
fixedThreadPool
singleThreadPool
性能较高
元素为0
synchronousQueue
cacheThreadPool
使用handoff场景
队列元素规模越小性能越好
队列比较
内存占用
吞吐量
AQS(abstractQueueSynchronizer)
结构
state
queue
acquire(int)
release(in)
并发结构的基础
并发容器
concurrent
concurrentMap
concurrentLinkedMap
弱一致性
size不一定准确
遍历不一定报错
copyOnWrite
CopyOnWriteSet
CopyOnWriteList
线程调度管理工具
executor
execute()
executorService
submit()
内部结构
工作队列
工作线程集合
ThreadFactory
RejectExecutionHandler
构造参数
corePoolSize
maxinumPoolSize
KeepAliveTime,timeUnit
workQueue
threadFactory
线程池实践
注意事项
任务堆积
工作线程过多
线程泄露
少使用ThreadLocal
线程池大小
计算型:N+1
资源等待型:cpu个数*利用率*(等待时间/工作时间)
线程池类型
singleThreadExecutor
ScheduledThreadPool
singleThreadScheduleExecutor
wokStealingPool
atomic
atomicLong
cas
ABA问题
AtomicStampedReference
no-lock
底层指令
load the reverse
store conditonal
LongAdder
AtomicXFieldUpdate
并发概览
并发特征
原子性
基本类型读写原子类(32位)
可见性
volatile
final
有序性
线程内串行语义
无序性
指令重排序
工作内存与主内存同步延迟
valatile
保证可见性
禁止指令重排序
先行规则
时间上先发生,操作不一定先发生
规则