如果應用程式執行緒試圖在GC重新定位物件之前載入它們,那麼應用程式執行緒也可以重定位該物件,這可以透過讀屏障(在從堆載入引用時觸發)實現,如流程圖如下所示:這可確保應用程式看到的所有引用都已更新,並且應用程式不可能同時對重定位的物件進行操作
用屁股想也知道是騙子肯給你正常走鹹魚的才可能真,但我打賭都是不肯的
ZGC收集器能僅從引用上就明確得知一個物件是否處於重分配集之中,如果使用者執行緒此時併發訪問了位於重分配集中的物件,這次訪問將會被預置的記憶體屏障所截獲,然後立即根據Region上的轉發表記錄將訪問轉發到新複製的物件上,並同時修正更新該引用