1. 为什么要用锁
锁是为了解决并发操作引起的脏读、数据不一致问题
2. 锁生命周期
3. CPU模型
L1、L2、L3分别表示一级缓存、二级缓存、三级缓存,越靠近CPU的缓存,速度越快,容量也越小。所以L1缓存很小但很快,并且紧靠着在使用它的CPU内核;L2大一些,也慢一些,并且仍然只能被一个单独的CPU核使用;L3更大、更慢,并且被单个插槽上的所有CPU核共享;最后是主存,由全部插槽上的所有CPU核共享。
PS: CPU访问不同层级数据的概念
4. Java内存模型
线程之间的共享变量存在主内存之中,每个线程都有一个私有的本地内存,本地内存存储了该线程以读/写共享变量的副本。本地内存是JAVA内存模型的一个抽象概念,并不真实存在。
它涵盖了缓存、写缓存区以及其他硬件以及编码器的优化。
参考资料