Chúng tôi thường sử dụng volatile
để đảm bảo rằng biến điều kiện có thể hiển thị cho mọi Chủ đề.Tôi có cần biến động cho các biến của các kiểu tham chiếu không?
Tôi thấy các trường volatile
là tất cả primitive type
trong mã cho đến thời điểm này.
Trường object
có vấn đề này không? Ví dụ:
class a {
public String str;
public List list;
}
Nếu có một số chủ đề sẽ truy cập vào str và danh sách, tôi phải thêm 'dễ bay hơi'?
Tôi đoán mỗi quyền truy cập vào Object
sẽ nhận trực tiếp từ Heap
và Object
sẽ không được lưu vào bộ nhớ cache như loại nguyên thủy.
Đúng không?
Bạn có nghĩa là tham chiếu có thể được lưu vào bộ nhớ cache như nguyên thủy? – Hesey
@Hersey Vâng, đó là chính xác. Xem pvblivs trả lời quá. – Bringer128
Những gì tôi có một trường (Object o = null;) nhưng nó không thể được thiết lập cuối cùng vì nó được khởi tạo bên ngoài constructor, tuy nhiên - nó không bao giờ bị thay đổi thành bất kỳ giá trị nào khác sau khi khởi tạo - và nó không được đọc trong khi nó null (thậm chí không kiểm tra null) ... nó chỉ được đọc sau khi nó đã được khởi tạo. Trong trường hợp này, không cần phải làm gì đặc biệt - đúng không? (nhiều chủ đề có thể truy cập đối tượng) – ycomp