我開始在最近的週末編寫自己的腳本語言,以便在高中畢業時獲得學習體驗和簡歷。到目前爲止事情已經變好了,我可以用基本類型(空,布爾,數字和字符串)和具有運算符優先級的數學表達式來解析變量,並且具有基本標記和清理垃圾回收器(在完成標記/清掃收集器之後我會實施一代垃圾收集器,我知道天真的標記/掃描不是很快)。不過,我不確定如何存儲垃圾收集器的引用對象。截至目前,我有一個GCObject類,它存儲一個指向它的內存的指針,以及它是否被標記。我應該存儲一個鏈表到它在類中被引用的對象嗎?我查看了其他語言的垃圾收集器,但是我沒有看到每個GCObject的引用鏈接列表,所以它讓我感到困惑。如何將引用存儲在標記和清除垃圾回收器中?
TLDR:如何將其他對象引用的對象存儲在標記和清除垃圾回收器中?我是否只在所有GCObject中存儲鏈接的對象列表?
謝謝你們。
是的我已經有一種方法來遍歷對象,我想知道如果我應該存儲鏈接列表中的根存儲的引用,或者如果有其他方式,我應該這樣做。鏈接列表似乎有點矯枉過正。 – 2012-04-02 23:32:00
你似乎是誤會。您不需要將「根存儲的引用」存儲在列表中或其他任何內容中;這些引用已經存儲 - 在根。 – davmac 2012-04-03 21:44:07
但是,它們是如何存儲在根中的,這正是我所要求的。但我已經在其他地方找到了答案。不管怎麼說,多謝拉。 – 2012-04-04 16:35:51