เครื่องเก็บขยะไม่ใช่ระบบที่ใช้งานอยู่ มันทำงาน "บางครั้ง" และตามความต้องการเป็นส่วนใหญ่ (เช่นเมื่อทุกหน้าที่เสนอโดยระบบปฏิบัติการเต็ม)
คนเก็บขยะส่วนใหญ่ทำงานในลักษณะคล้ายรุ่นแรกกว้างในหัวข้อย่อย ในกรณีส่วนใหญ่อาจใช้เวลาหลายชั่วโมงก่อนที่วัตถุจะถูกรีไซเคิล
ปัญหาเดียวเกิดขึ้นเมื่อคุณต้องการยุติโปรแกรม อย่างไรก็ตามนั่นไม่ใช่ปัญหาจริงๆ เมื่อคุณใช้kill
ระบบปฏิบัติการจะขอให้ยุติกระบวนการอย่างสุภาพ เมื่อกระบวนการยังคงทำงานอยู่เราสามารถใช้โดยkill -9
ที่ระบบปฏิบัติการจะลบการควบคุมทั้งหมด
เมื่อฉันรันโค้ดของคุณในcsharp
สภาพแวดล้อมแบบโต้ตอบฉันมี:
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
ดังนั้นโปรแกรมของคุณจึงล้มเหลวเนื่องจากstdout
ถูกปิดกั้นโดยการยุติสภาพแวดล้อม
เมื่อลบConsole.WriteLine
และฆ่าโปรแกรม หลังจากผ่านไปห้าวินาทีโปรแกรมจะยุติลง (กล่าวอีกนัยหนึ่งคือคนเก็บขยะยอมแพ้และจะเพิ่มหน่วยความจำทั้งหมดโดยไม่ต้องคำนึงถึงขั้นสุดท้าย)