老师,为什么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。