Nhiều lần tôi đã gặp tuyên bố rằng ứng dụng phải luôn đóng tất cả các tài nguyên mà nó đã mở một cách rõ ràng.Việc đóng tài nguyên luôn quan trọng?
Cách tiếp cận lập trình của tôi khá thực dụng và tôi không muốn theo dõi một cách mù quáng bất kỳ quy ước nào mà tôi không thấy rõ lợi ích của. Do đó câu hỏi của tôi.
Giả sử rằng:
- Tôi có một ứng dụng nhỏ
- Nó mở ra một ít tài nguyên (ví dụ như các file, các kết nối cơ sở dữ liệu, suối từ xa) và xử lý nó
- Nó hoạt động một vài phút và sau đó nó thoát
- Hãy nói rằng đó là trong Java (nếu ngôn ngữ là có liên quan)
tôi thực sự phải quan tâm đến cl osing tất cả các nguồn lực mà tôi đã mở? Tôi đoán tất cả các tài nguyên tôi đã mở sẽ được đóng/phát hành khi ứng dụng/máy ảo thoát. Tôi có đúng không?
Nếu đó là sự thật, có lý do thuyết phục nào để quan tâm đến việc đóng tài nguyên trong ứng dụng ngắn, ngắn như vậy không?
UPDATE:
Câu hỏi đặt ra là hoàn toàn giả thuyết, nhưng lập luận cho không quan tâm về điều đó là tôi có thể được chỉ hack cùng một số kịch bản nhanh chóng và không muốn viết bất kỳ mã không cần thiết không trực tiếp liên quan cho vấn đề ở bàn tay: đóng tài nguyên, thực hiện tất cả các công cụ cố gắng tiết kiệm chi tiết này, xử lý các ngoại lệ mà tôi không quan tâm, v.v.
Điểm của câu hỏi là liệu có bất kỳ hậu quả nào của thực tế hay không không làm điều đó.
Hãy để tôi trả lời câu hỏi cho bạn: Tại sao bạn không nên ** quan tâm đến việc đóng tài nguyên? –
"đoán tất cả các tài nguyên tôi đã mở sẽ được đóng/giải phóng khi ứng dụng/máy ảo thoát." -> Tôi đoán là điều này không đúng. Nếu bạn không đóng và thoát VM, hệ điều hành có thể chịu trách nhiệm đóng các luồng/ổ cắm đó. – kosa
Để loại bỏ các cảnh báo, bạn phải ngăn chặn chúng mà chỉ là công việc như .close(). Ngoài ra nó là hình thức tốt. –