老师,为什么PHASES和PHASE_START_TIME都设为null了,最后结果还能有数据输出呢?这点没想通欸,先谢谢老师的解答 :)
代码如下:
public static void finish() {
List<Phase> phases = PHASES.get();
PHASES.set(null);
PHASE_START_TIME.set(null);
//PHASES和PHASE_START_TIME都设为null了,为什么下面还能有数据输出呢?
StringBuilder out = new StringBuilder("-----Thread Execution Phase Durations---------");
phases.forEach(out::append);
out.append("--------------------------\n");
System.out.println(out.toString());
}
展开
作者回复:
先取出了list
List<Phase> phases = PHASES.get();
然后set为null
PHASES.set(null);
PHASE_START_TIME.set(null);
并不会影响已经取出来的phases。
就好像
int a = 9;
int b = a;
a = 0;
b并不是0,还是9。