JUC学习笔记

69 阅读1分钟

1、缓存一致性什么时候会失效?

答 a.变量的长度大于一个缓存行的长度,会改用加总线锁 b.cpu不支持缓存一致性协议

2、什么时候会发生指令重排

答 a.及时编译的时候JIT b.字节码转为cpu指令的时候

3、总线风暴遇到过吗?

答 大量的线程通过缓存一致性协议与主内存产生大量的交互,volatile(底层是MESI解决缓存一致性)或CAS不断会产生无效的工作内存变量,并且不断通过嗅探机制去探查其他cpu有没有改动内存,总线的带宽有限,大量无效的交互占用极大的带宽。为了避免此种情况,可以通过加锁,比如synchronized或lock