Trong lập trình máy tính, tham chiếu yếu (tiếng Anh: weak reference) là một tham chiếu mà không bảo vệ đối tượng được tham chiếu khỏi sự thu gom bởi một bộ gom rác, không giống như tham chiếu mạnh (strong reference). Một đối tượng chỉ được tham chiếu bởi tham chiếu yếu – có nghĩa là "mọi chuỗi các tham chiếu đến đối tượng đó bao gồm ít nhất một tham chiếu yếu như là một liên kết" – được xem là có thể tiếp cận được một cách yếu, và có thể được coi là không tiếp cận được và do vậy có thể bị thu thập bất cứ lúc nào. Một số ngôn ngữ dọn rác có tính năng hoặc hỗ trợ nhiều mức tham chiếu yếu, như C#, Java, Lisp, OCaml, Perl, và Python.[1]

Cách dùng sửa

Tham chiếu yếu có nhiều trường hợp sử dụng phổ biến.

Dọn rác sửa

Thu gom rác là cơ chế để làm sạch các đối tượng không còn được sử dụng nữa và do vậy giảm thiểu khả năng rò rỉ bộ nhớ (memory leak) và thoái hóa dữ liệu (data corruption). Có hai kiểu dọn rác chính: theo dấu (tracing) và đếm tham chiếu (reference counting). Sơ đồ đếm tham chiếu ghi lại số lượng tham chiếu đến một đối tượng nhất định và thu dọn đối tượng đó khi đếm tham chiếu trở về giá trị 0.

Các biến thể sửa

Vài ngôn ngữ có nhiều mức độ sức mạnh của tham chiếu yếu. Ví dụ, Java có, theo thứ tự giảm sức mạnh, tham chiếu mềm, yếu, và ma, được định nghĩa trong gói java.lang.ref.[2]

Xem thêm sửa

Tham khảo sửa

  1. ^ 8.8. weakref — Weak references, The Python Standard Library
  2. ^ Nicholas, Ethan (ngày 4 tháng 5 năm 2006). “Understanding Weak References”. java.net. Bản gốc lưu trữ ngày 19 tháng 8 năm 2010. Truy cập ngày 1 tháng 10 năm 2010.

Liên kết ngoài sửa

C++ sửa

Java sửa

Python sửa

Bản mẫu:Quản lý bộ nhớ