java内存模型
自动内存管理
相关概念
野指针:比较野的指针,指向内存被释放的内存或者没有访问权限的内存的指针。 原因:野指针主要是因为这些疏忽而出现的删除或申请访问受限内存区域的指针。
内存泄漏:内存没有及时释放,导致其他线程无法申请使用。导致堆空间连续分布的内存越来越少。 (最后,当没有可用的连续分布的内存空间,此时线程申请使用更大一块连续的内存空间,则会出现“内存溢出”)
# 存储器的层次结构
# 多线程数据一致性硬件层的支持?
- 给总线加把锁
通过一致性协议
一般是 MESI Cache一致性协议
缓存行:
比如读取一个字节的东西,CPU不会只读取一个字节,而是会携带多个字节一起缓存下来,方便下次读取
1
伪共享问题
位于同一缓存行的两个不同数据,被两个不同CPU锁定,产生互相影响的伪共享问题
1
2
2
乱序问题
CPU为了提高指令执行效率,会在一条指令执行过程中(比如去内存读数据(慢100倍)),去同时执行另一条指令,前提是,两条指令没有依赖关系
1
内存屏障
防止指令重排的手段
上次更新: 2023/03/15, 00:20:59