Çöp toplayıcı, aktif bir sistem değildir. "Bazen" ve çoğunlukla talep üzerine çalışır (örneğin, işletim sistemi tarafından sunulan tüm sayfalar dolu olduğunda).
Çoğu çöp toplayıcı, bir alt iş parçacığında enine birinci nesil benzeri bir şekilde çalışır. Çoğu durumda nesnenin geri dönüştürülmesi saatler sürebilir.
Tek sorun, programı sonlandırmak istediğinizde ortaya çıkar. Ancak bu gerçekten bir sorun değil. Bir kill
işletim sistemi kullandığınızda kibarca süreçleri sonlandırmanızı isteyecektir. Ancak süreç aktif kaldığında kill -9
, İşletim Sisteminin tüm kontrolü kaldırdığı yerde kullanılabilir .
Kodunuzu etkileşimli csharp
ortamda çalıştırdığımda, elimde:
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
Böylece programınız stdout
, ortamın sona ermesiyle engellendiği için çöker .
Console.WriteLine
Programı kaldırırken ve sonlandırırken. Beş saniye sonra program sona erer (başka bir deyişle, çöp toplayıcı vazgeçer ve sonlandırıcıları hesaba katmadan tüm belleği serbest bırakır).