四核八线程,双核四线程之类。
指的是一个核装两个线程(两组线程对应的资源单元,比如多个pc),但只有一个ALU。
cache line (缓存行),inter的cpu,一个cache line 64字节,cpu一次性读一个cache line的数据。
缓存行越大,局部性空间效率越高,但读取时间慢 缓存行越小,局部性空间效率越低,但读取时间块 取一个这种值,目前多用64字节
禁止指令重排序带来的空指针问题
-
T.java
源码: class T { int m = 8; } T t = new T() ------------------------- 翻译成字节码 new #2<T> // 1. 在堆内存分配一块内存,此时变量m的默认值是0 dup invokespecial #3 <T.<init>> // 2. 调用构造方法,m复制为8 astore 1 // 3. 建立关联,t指向对象 return
-
如果发生指令重排序
new #2 // 在堆内存分配空间 astore_1 // 2. t指向了半初始化对象,此时判断t不等于空 invokespecial #3 <T.<init>> // 3. 执行构造方法