架构师UP
2020-11-02 09:55:20 0 举报
AI智能生成
Java架构师进阶
作者其他创作
大纲/内容
设计模式
Java
并发
线程
映射
内核线程
1:1
HotSpot
用户线程
1:N
用户线程+ 轻量级进程
M:N
调度
协同式
抢占式
状态转化
New
Runnable
Waiting
Timed Waiting
Blocked
Terminated
安全级别
不可变
基本类型
String
Number
Long
Double
BigInteger
Integer
BigDecimal
AtomicInteger
CAS
UnSafe
AtomicLong
CAS
UnSafe
final
可见性
绝对线程安全
相对线程安全
Vector
HashTable
Collections.synchronizedCollection()
线程兼容
ArrayList
HashMap
线程对立
suspend
resume
实现
互斥同步
synchronized
可重入
不可中断
非公平
Lock
等待可中断
公平锁
绑定多个条件
非阻塞同步
CAS
Unsafe
cmpxchg指令
ABA问题
无同步
ThreadLocal
锁优化
自旋锁
自适应自旋锁
锁消除
锁粗化
偏向锁
轻量级锁
重量级锁
基础
内存间交互操作
原子操作
lock
unlock
read
load
use
assign
store
write
约束
read和load 、store和write 成对出现
工作内存中发生了assign 操作,必须同步回主内存。如果没有发生assign 操作,不能同步回主内存
新变量只能在主内存中产生
同一个变量可以被同一个线程多次lock 操作
lock以后,工作内存中的变量清空,重新load主内存中的值
unlock 以后,将工作内存的变量值同步回主内存
volatile
语义
保持变量的可见性
工作内存中修改的值立即同步给主内存
工作内存中使用的值,每次都是从主内存中load
禁止指令重排
内存屏障
场景
运算结果不依赖于变量的当前值,或者确保只有一个线程修改变量的值
变量不需要与其他的状态变量共同参与不变约束
原子性、可见性、有序性
原子性
6个原子动作
对基本类型变量的读写
锁
可见性
volatile
final
this逃逸
锁
有序性
volatile 禁止指令重排
锁
先行发生原则
先行发生原则
程序次序规则
同一个线程
管程锁定规则
同一锁
volatile 变量规则
线程启动规则
线程终止规则
线程中断规则
对象终结规则
传递性
集合
基础
IO
泛型
注解
反射
JVM
算法
贪心算法
分治
动态规划
排序
回溯
分支限界
数据结构
数据库
微服务
分布式
Zookeeper
Kafka
Redis
数据结构
raw
sds
free
len
buffer
int
embstr
ht
数组+链表
rehash
linkedlist
skiplist
多级索引
基于概率插入上层
logn
ziplist
inset
集群
分布式
数据分区
虚拟槽分区
数据请求
myslots
clusterNode
数据迁移
MOVED
ASK
主从
哨兵
通信
_sentinel_:hello
info
ping
主观下线
客观下线
选主哨兵选举
Raft算法
选主
slave-priority
offset
min id
单机
内存管理
maxmemory
内存回收
删除到达过期时间的键值对
惰性删除
定时任务
回收策略
noeviction
volatile-lru
allkeys-lru
volatile-random
allkeys-random
volatile-ttl
volatile-lfu
allkeys-lfu
持久化
AOF
触发机制
no
everysec
always
重写机制
bgrewriteaof
触发
auto-aof-rewrite-percentage
auto-aof-rewrite-min-size
fork期间发生的操作什么时候写入aof中?
RDB+AOF
bgrewriteaof
RDB
触发机制
redis.conf
save time(s) update(s)
save
bgsave
缓存
缓存击穿
加锁
预热
缓存穿透
缓存空对象
布隆过滤器
缓存雪崩
集群高可用
设置不同的过期时间
消息队列
发布订阅
publish channel msg
subscribe channel
unsubscribe channel
psubscribe 模式
punsubscribe 模式
pubsub channels
pubsub numsub
事务
步骤
开始事务
命令入队
执行事务、撤销事务
命令
MULTI
DISCARD
EXEC
WATCH key
UNWATCH
错误处理
语法错误
队列中的所有命令都不会执行
运行错误
所有正确的命令被执行了
配置
分布式锁
1
事务
watch
2
setnx
getset
expire
del
3
redisson
加锁
lock
tryLock
解锁
unLock
延长超时机制
watchdog
只在未设置超时时间情况下启用
可重入
客户端(pid+tid)
Hadoop
Spark
Spring
Spring Cloud
Spring Boot
Spring Framework
机器学习
架构
高并发
网络
Hbase
0 条评论
下一页