多线程并发
2020-11-10 18:37:56 0 举报
AI智能生成
多线程并发
作者其他创作
大纲/内容
线程池
使用场景
最佳资源利用
吞吐量
过度切换
任务短数量多
注意事项
考虑和避免线程并发问题
考虑工作线程超时处理问题
考虑队列大小
考虑线程池大小
考虑cpu核数
考虑是否对要执行的任务分类
考虑线程所操作的资源
基础
摩尔定律
线程
起源
优势
内存
模型
实现
安全
硬件
多处理器时代
对称多处理器
非对称多处理器
非同一内存访问
共享内存
内存栅栏
cpu缓存
缓存一致性
MESI 协议
互斥
阻塞同步
临界区
一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性
锁
锁的类型
公平锁/非公平锁
可重入锁
独享锁/共享锁
互斥锁/读写锁
乐观锁/悲观锁
分段锁
偏向锁/轻量级锁/重量级锁
自旋锁
数据库锁
锁的级别
锁的粒度
加锁的方式
操作方式
使用方式
问题
活锁
死锁
优先级倒置
饥饿
非阻塞同步
wait-free算法
lock-free 算法
obstruction-free 算法
可重入
监视器
等待信号
条件变量
信号灯
双检查锁
模型
一致性模型
原子一致性
连续一致性
因果一致性
内存模型
可见性
原子性
顺序性
java线程实现
线程基础
同步原语
synchronized关键字
volatile关键字
cas操作
内存模型
可见性(viability)
原子性(Atomicity)
顺序性(Order)
Happens-Before
as-if- serial语义
final域
线程
状态(state)
线程启动 Thread.start()
弃用 Thread.stop() ,Thread.suspend()和Thread.resume()方法
Thread.join()方法
Object.wati()/notify()方法
Thread.sleep()方法
ThreadLocal
并发框架
同步
核心 AQS
重入锁 ReentrantLock
公平锁
非公平锁
可重入读写锁 ReentrantReadWriteLock
条件变量 Condition
新通知/信号机制 LockSupport
限制
CountDownLatch
CyclicBarrier
Semaphore
Phaser
原子操作
Atomic 类
Unsafe 类
线程安全集合
CopyOnWriteArrayList和CopyOnWriterArraySet
ConcurrentSkipListMap和ConcurrentSkipListSet
ConcurrentHashMap
LinkedBlockingQueue 和 ArrayBlockingQueue
PriorityBlockingQueue
LinkedTransferQueue
线程池
Executor
ThreadPoolExecutor
FixedThreadPool
SingleThreadExecutor
CachedThreadPool
Callable 和 Future
ScheduledExecutorService
ScheduledThreadPoolExecutor
Executors
并发执行任务框架
ForkJoinTask
ForkJoinPool
线程通信
Exchanger
JVM并发实现
线程(Thread)实现
监视器(Monitor)实现
可见性
原子性
顺序性
其他
0 条评论
下一页