สารบัญ:
- ทำไมจึงควรหลีกเลี่ยงวิธีจบ C
- เราควรลบล้างวิธี Finalize หรือไม่
- จะเกิดอะไรขึ้นหากข้อยกเว้นถูกส่งออกไปโดยวิธี Finalize
- จุดประสงค์ของวิธีการสรุปคืออะไร
2024 ผู้เขียน: Fiona Howard | [email protected]. แก้ไขล่าสุด: 2024-01-10 06:43
แม้ในโปรแกรมของเรา มันก็ยังไม่สามารถรันวิธีการสรุปผลสำหรับทั้ง 3 เธรดได้ “วิธีนี้ ไม่ปลอดภัยโดยเนื้อแท้ อาจส่งผลให้ตัวสุดท้ายถูกเรียกบนวัตถุที่มีชีวิตในขณะที่เธรดอื่นกำลังจัดการกับวัตถุเหล่านั้นพร้อมกัน ส่งผลให้เกิดพฤติกรรมผิดปกติหรือการหยุดชะงัก”
ทำไมจึงควรหลีกเลี่ยงวิธีจบ C
วิธีการ Finalize ของอ็อบเจ็กต์ไม่ควรเรียกใช้เมธอดบนอ็อบเจกต์อื่นนอกเหนือจากคลาสพื้นฐาน นี่เป็นเพราะ อ็อบเจ็กต์อื่นๆ ที่ถูกเรียกสามารถรวบรวมได้ในเวลาเดียวกันกับอ็อบเจ็กต์การเรียก เช่น ในกรณีของการปิดรันไทม์ภาษาทั่วไป
เราควรลบล้างวิธี Finalize หรือไม่
วิธีการ finailze ควรถูกแทนที่สำหรับอ็อบเจ็กต์ที่จะรวมโค้ดการล้างข้อมูล หรือเพื่อกำจัดทรัพยากรระบบที่ควรทำก่อนที่อ็อบเจ็กต์จะถูกรวบรวมขยะ
จะเกิดอะไรขึ้นหากข้อยกเว้นถูกส่งออกไปโดยวิธี Finalize
หากวิธีการปิดท้ายส่งข้อยกเว้นที่ไม่ถูกตรวจจับออก การยกเว้นจะถูกละเว้นและการสิ้นสุดของวัตถุนั้นจะสิ้นสุดลง … ข้อยกเว้นใด ๆ ที่เกิดจากวิธีการสรุปผลทำให้การสรุปวัตถุนี้ถูกระงับ แต่จะถูกละเว้น
จุดประสงค์ของวิธีการสรุปคืออะไร
วิธีจบของคลาส Object เป็นวิธีที่ the Garbage Collector เรียกเสมอก่อนการลบ/ทำลายวัตถุที่มีสิทธิ์ได้รับ Garbage Collection เพื่อดำเนินการทำความสะอาด.