1.为什么需要cpu cache:
cpu的频率太快了,快到主存跟不上,cpu常常需要等待主存,浪费资源。所以cache的出现,是为了解决cpu和内存之间速度的不匹配问题( cpu>cache>memory)
2.cpu cache有什么意义
1)时间局部性
2)空间局部性
3.cpu多级缓存 - 缓存一致性(MESI)
4.JMM(java 内存模型)
1)lock/unlock
5.并发的优势和风险
6.线程安全性——>atomic——>cas(Unsafe.compareAndSwapInt()):拿当前的值与底层的值对比,如果当前的值与底层的值一样时才进行累加操作(工作内存的值 不一样和主内存的值一样)
1)原子性 - 对比
synchronize:不可中断锁,适合竞争不激烈,可读性好
lock:可中断锁,多样化同步,竞争激烈时能维持常态
Atomic:竞争激烈时能维持常态,比lock性能好;只能同步一个值
volatile:适用于状态标识、
欢迎 ⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️
< END >
程序员NBA
一个有故事的程序员
或者加我微信1414200300一起讨论java技术,有什么问题群里人也可以帮你一起解决