Từ khóa volatile
trong C# được sử dụng để làm gì?
Từ khóa volatile
trong C# được sử dụng để làm gì?
Trong C#, từ khóa volatile
được sử dụng để chỉ định rằng một trường (field) có thể được sửa đổi bởi nhiều luồng (threads) mà không cần sử dụng các cơ chế đồng bộ hóa như lock
hoặc Mutex
. Khi một trường được khai báo là volatile
, compiler và runtime sẽ đảm bảo rằng các đọc và ghi giá trị của trường đó sẽ được thực hiện trực tiếp trên bộ nhớ chính (main memory) và không được lưu trong cache của CPU, đảm bảo rằng giá trị mới nhất của trường luôn được sử dụng bởi tất cả các luồng.
volatile
:volatile
luôn được cập nhật và nhìn thấy một cách nhất quán giữa các luồng.volatile
không đảm bảo rằng các hoạt động đọc và ghi là atomic, nghĩa là các hoạt động trên các kiểu dữ liệu lớn hơn kích thước từ máy (machine word size), như double
hoặc long
, có thể không an toàn về mặt luồng.middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào