CPU三级缓存
CPU是由多级缓存构成,不同的cpu结构有不同等级的缓存,每个等级的缓存大小也不一样;
常规的CPU由3级别组成L1,L2,L3(也有L4),内存大小L1<L2<L3;访问速度L1>L2>L3>直接内存
常见的4核心8线程:一个CPU有两个core,每个core都有L1,L2,两个core共享L3
缓存行
缓存行的大小一般为64字节,cpu一次性读取缓存行数据大小
缓存失效
public class CpuCacheTest {
public static void main(String[] args) throws InterruptedException {
Pointer pointer = new Pointer();
long forLength=100000000;
long start = System.currentTimeMillis();
Thread t1 = new Thread(()->{
for (int i = 0; i < forLength; i++) {
pointer.a.value++;
}
});
Thread t2 = new Thread(()->{
for (int i = 0; i < forLength; i++) {
pointer.b.value++;
}
});
t1.start();
t2.start();
t1.join();
t2.join();
long end=System.currentTimeMillis();
System.out.println("消耗时间:"+(end - start));
}
}
class Pointer{
MyLong a=new MyLong();
MyLong b=new MyLong();
}
class MyLong{
volatile long value;
}