Câu hỏi phỏng vấn Python
Câu hỏi

Tại sao không phải tất cả bộ nhớ đều được giải phóng khi Python thoát?

Câu trả lời

Khi Python thoát, không phải lúc nào tất cả bộ nhớ cũng được giải phóng. Điều này có thể xảy ra do một số lý do:

  • Đối Tượng Tham Chiếu Vòng: Python sử dụng bộ thu gom rác (garbage collector) để giải phóng bộ nhớ không còn được sử dụng. Tuy nhiên, nếu có các đối tượng tham chiếu lẫn nhau tạo thành một chu trình tham chiếu, Python có thể không thể giải phóng bộ nhớ của chúng một cách tự động. Mặc dù Python có cơ chế để phát hiện và giải quyết các chu trình tham chiếu như vậy, nhưng không phải lúc nào nó cũng hoạt động hoàn hảo.
  • Đối Tượng Toàn Cục và Module: Các đối tượng toàn cục và module có thể vẫn tồn tại cho đến khi Python hoàn toàn thoát. Python sẽ giải phóng bộ nhớ cho các đối tượng này khi quá trình thoát hoàn tất, nhưng trong một số trường hợp, các đối tượng này có thể giữ lại bộ nhớ lâu hơn mong đợi.
  • Mở Rộng C và Bộ Nhớ Động: Khi sử dụng các thư viện mở rộng viết bằng C hoặc C++, việc quản lý bộ nhớ động khô...
expert

expert

Gợi ý câu hỏi phỏng vấn

entry

break, continuepass trong Python để làm gì?

middle

Iterator trong Python là gì?

expert

Hãy mô tả ngắn gọn cơ chế Garbage Collection trong Python?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào