Pengumpul sampah bukanlah sistem yang aktif. Ini berjalan "kadang-kadang" dan sebagian besar sesuai permintaan (misalnya ketika semua halaman yang ditawarkan oleh OS penuh).
Sebagian besar pengumpul sampah menjalankan dengan cara seperti generasi pertama di subjudul. Biasanya dibutuhkan waktu berjam-jam sebelum objek tersebut didaur ulang.
Satu-satunya masalah terjadi ketika Anda ingin menghentikan program. Namun itu sebenarnya bukan masalah. Ketika Anda menggunakan kill
OS akan meminta dengan sopan untuk menghentikan proses. Namun ketika proses tetap aktif, seseorang dapat menggunakan di kill -9
mana Sistem Operasi menghapus semua kontrol.
Ketika saya menjalankan kode Anda di csharp
lingkungan interaktif , saya mendapatkan:
csharp>
1
2
Unhandled Exception:
System.NotSupportedException: Stream does not support writing
at System.IO.FileStream.Write (System.Byte[] array, Int32 offset, Int32 count) [0x00000] in <filename unknown>:0
at System.IO.StreamWriter.FlushBytes () [0x00000] in <filename unknown>:0
at System.IO.StreamWriter.FlushCore () [0x00000] in <filename unknown>:0
at System.IO.StreamWriter.Write (System.Char[] buffer, Int32 index, Int32 count) [0x00000] in <filename unknown>:0
at System.IO.CStreamWriter.Write (System.Char[] buffer, Int32 index, Int32 count) [0x00000] in <filename unknown>:0
at System.IO.CStreamWriter.Write (System.Char[] val) [0x00000] in <filename unknown>:0
at System.IO.CStreamWriter.Write (System.String val) [0x00000] in <filename unknown>:0
at System.IO.TextWriter.Write (Int32 value) [0x00000] in <filename unknown>:0
at System.IO.TextWriter.WriteLine (Int32 value) [0x00000] in <filename unknown>:0
at System.IO.SynchronizedWriter.WriteLine (Int32 value) [0x00000] in <filename unknown>:0
at System.Console.WriteLine (Int32 value) [0x00000] in <filename unknown>:0
at P.Finalize () [0x00000] in <filename unknown>:0
Dengan demikian program Anda macet karena stdout
diblokir oleh penghentian lingkungan.
Saat menghapus Console.WriteLine
dan mematikan program. Ini setelah lima detik program berakhir (dengan kata lain, pengumpul sampah menyerah dan hanya akan membebaskan semua memori tanpa memperhitungkan finalizer).