Bộ thu gom rác không phải là một hệ thống hoạt động. Nó chạy "đôi khi" và chủ yếu là theo yêu cầu (ví dụ: khi tất cả các trang do HĐH cung cấp đều đã đầy).
Hầu hết các trình thu gom rác chạy theo cách giống như thế hệ thứ nhất theo chiều rộng trong một luồng con. Trong hầu hết các trường hợp, có thể mất hàng giờ trước khi đồ vật được tái chế.
Sự cố duy nhất xảy ra khi bạn muốn chấm dứt chương trình. Tuy nhiên đó không thực sự là một vấn đề. Khi bạn sử dụng kill
một hệ điều hành sẽ yêu cầu một cách lịch sự để chấm dứt các quy trình. Tuy nhiên, khi quy trình vẫn hoạt động, người ta có thể sử dụngkill -9
nơi Hệ điều hành loại bỏ tất cả quyền kiểm soát.
Khi tôi chạy mã của bạn trong csharp
môi trường tương tác , tôi có:
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
Do đó, chương trình của bạn bị treo do stdout
bị chặn bởi sự khắc nghiệt của môi trường.
Khi gỡ bỏ Console.WriteLine
và giết chương trình. Sau năm giây, chương trình sẽ kết thúc (nói cách khác, trình thu gom rác từ bỏ và đơn giản là sẽ giải phóng tất cả bộ nhớ mà không cần tính đến các trình hoàn thiện).