用for(PhantomReference ref:ref_array循环出ref时的一个问题
我用PhantomReference实现一个实时监视对象数量的小功能,上图代码片断中,ref_array是所有对象的虚引用的集合,我发现了一个问题,
就是当暴力测试的时候不时会抛这个错误,即是当在for遍历
ref_array还没遍历完的时候,系统回收对象,ref_array中的虚引用被拿到ReferenceQueue中,这时由于还没遍历结束,所以会抛如此错误。
最后,我将for each循环换成for(;;)循环,问题就解决了。