Java多线程并发编程
2024-04-10 10:04:25 2 举报
AI智能生成
登录查看完整内容
Java并发框架学习
作者其他创作
大纲/内容
Executor
keepAliveTime
TimeUnit
PriorityBlockingQueue
ArrayBlockingQueue
LinkedBlockingDeque
SynchronousQueue
runnableTaskQueue
ThreadFactory
构造参数
种类
ThreadPoolExecutor
Callable和Future
ScheduledExecutorService
合理配置线程池
线程池的监控
线程池
分割任务
执行任务合并
Fork/Join的设计
Fork/Join框架
CompletableFuture
Disruptor并发框架
并发线程池、任务执行
什么是HashMap
高并发下的HashMap
什么是ConcurrentHashMap
ConcurrentHashMap的结构
ConcurrentHashMap初始化
ConcurrentHashMap允许多个读并发进行
ConcurrentHashMap
ConcurrentLinkedQueue
LinkedBlockingQueue
缓存系统的设计
定时任务调度
使用场景
DelayQueue
LinkedTransferQueue
Java中的阻塞队列
CopyOnWriteArrayList
CopyOnWriteArraySet
CopyOnWrite容器介绍
黑白名单
读多写少
优缺点
CopyOnWrite
并发集合
线程之间共享程序的公共状态,通过写-读(jdk.internal.misc.Unsafe#compareAndSetInt)内存中的公共值来隐式通信
共享内存 volatile变量
线程之间通过发送消息(jdk.internal.misc.Unsafe#unpark)来实现通信
消息传递 通知唤醒线程
线程通信
AtomicBoolean
AtomicInteger
AtomicLong
基本类型
AtomicIntegerArray
AtomicLongArray
AtomicReferenceArray
数组
AtomicReference
AtomicReferenceFieldUpdater
引用类型
AtomicIntegerFieldUpdater
AtomicLongFieldUpdater
AtomicStampedReference
原子更新字段类
锁
循环使用CAS实现原子操作
Java如何实现原子操作
原子操作
应用场景
CyclicBarrier
一个线程调用countDown方法happen-before,另一个线程调用await等待
CountDownLatch
Semaphore
子主题
CountDownLatch和Semaphore区别
Exchanger
同步工具类
实现重进入
非公平锁
公平锁
ReentrantLock
读写锁、读不加锁,写时加锁
ReentrantReadWriteLock
ReentrantLock.NonfairSync
ReentrantLock.FairSync
锁的内存语义?
Lock接口
等待队列
等待
通知
Condition的实现
Condition
LockSupport
线程同步、锁
重排序对多线程的影响
重排序
数据竞争与顺序一致性
顺序一致性内存模型
同步程序的顺序一致性效果
未同步程序的执行特性
顺序一致性
定义
1. 程序执行次序规则:在一个单独的线程中,按照程序代码的顺序执行,(时间上)执行的操作happes-before(时间上) 后执行的操作
2. 管理锁定规则:一个unlock操作happens-before后面(时间上的先后顺序,下同)对同一个锁的lock操作
3. volatile变量规则:对一个volatile变量的写操作 happens-before 后面 对该volatile变量的读操作
4. 线程启动规则:线程Thread对象的start()方法 happens-before此线程的每一个动作
5. 线程终止规则:线程的所有操作都 happens-before 对此线程的终止检测;可以通过Thread.join()结束、Thread
规则
happens-before
as-if-serial
JMM的内存可见性保证
内存模型
set(T) 设置一个值
ThreadLocal
其他
参考地址
Java多线程并发编程
0 条评论
回复 删除
下一页