java多线程知识图谱
2019-12-23 10:11:23 0 举报
AI智能生成
java多线程详尽描述
作者其他创作
大纲/内容
基础知识
特性
原子性
可见性
volatitle
有序性
指令重排序
HAPPEN-BEFORE原则
活跃性
死锁
活锁
饥饿
概念
线程组
守护线程
线程优先级
阻塞和非阻塞
同步和异步
并发和并行
并发级别
阻塞
synchronized
重入锁
无饥饿
无障碍
无锁
无等待
线程状态
NEW
RUNNABLE
BLOCKED
WAITING
TIMED_WAITING
TERMINATED
基本操作
新建线程
终止线程
线程中断interrupt
等待wait和通知notify
挂起suspend和继续执行resume
等待线程结束join和谦让yield
线程安全类
Conllections线程安全包装工具
高效的并发ConcurrentHashMap
高效读写队列ConcurrentLinkedQueue
高效读取CopyOnWriteArrayList
阻塞队列BlockingQueue
基于数组的ArrayBlockingQueue
基于链表的LinkedBlockingQueue
跳表SkipList
ConcurrentSkipListMap
Atomic原子操作类
基本Atomic
AtomicInteger
AtomicLong
AtomicBoolean
AtomicReference
数组的Atomic
AtomicIntegerArray
AtomicLongArray
AtomicReferenceArray
防止ABA问题的原子类
带有版本号的AtomicMarkableReference
带有时间戳的AtomicStampedReference
普通变量的原子类
AtomicIntegerFieldUpdater
AtomicLongFieldUpdater
AtomicReferenceFieldUpdater
锁
重入锁ReentrantLock
中断响应lockInterruptibly()
尝试获得锁tryLock()
锁申请等待限时tryLock(long timeout, TimeUnit unit)
设置公平锁ReentrantLock(boolean fair)
使用CAS来保存锁状态,判断锁是否被占用
所有没有获得锁的线程会进入等待队列,当有资源可用时,会唤醒一个线程去抢占锁
condition条件
await和single就相当于wait和notify
信号量Semaphore
读写锁ReadWriteLock
倒计时器CountDownLatch
循环栅栏CyclicBarrier
LockSupport
锁的优化
减少锁持有的时间
减少锁粒度
读写分离锁替换独占锁
锁分离
锁粗化
jdk内部的锁优化策略
锁偏向
轻量级锁
自旋锁
锁消除
线程局部变量TreadLocal
线程池
线程池创建类Executors
创建固定数量的线程池newFiexdTreadPool
创建只有一个线程的线程池newSingleTreadPoll
创建可调整数量的线程池newCachedTreadPool
创建计划任务的线程池newScheduleExecutorService
………………
ThreadPoolExecutor
提供线程池监控
线程开始beforeExecute
线程结束afterExecute
线程池退出termiated
使用队列存储任务
直接提交队列synchronousBlockingQueue
有界队列ArrayBlockingQueue
无界队列LinkedBlockingQueue
优先队列priorityBlockingQueue
超负载实行拒绝策略
TreadFactory
线程池异常
通过submit提交任务无法获知异常
通过execute提交任务可获取部分异常
通过futrue.get可获取部分异常
自定义连接池抛出异常
分而治之线程池ForkJoinPoll
框架
并发框架Diruptor
高可用性分布式并发框架AKKA
0 条评论
下一页
为你推荐
查看更多