
多线程detach问题
实际上就是因为std::ref(num),这个转换发生在主线程结束之前,还是之后。如果发生在结束前,val结果就正常。如果发生在结束后,val值就是一个UB。运行可知,num的地址和val的地址不同,两个变量明显不是同一块内存。可是我本意目的就是要这个UB,但发现主线程中数据并没有发生改变。由于引用这个东西,本能的我就想到是因为引用的引用,导致这个问题。昨晚无意间敲少敲了&引用,于是出现了子线程中值UB的问题。线程如果先结束,回收num,val还是会改变。于是各种试验,反汇编,查询无果。








