Có lý do nào để sử dụng dễ bay hơi và đồng bộ hóa với nhau trong mã này không?Dễ bay hơi khi được đồng bộ hóa với nhau
public class Helper {
private volatile int n;
private final Object lock = new Object();
public Helper(int n) {
this.n = n;
}
public void setN(int value) {
synchronized (lock) {
n = value;
}
}
}
Trình trợ giúp lớp phải là chủ đề an toàn. Tôi đã có ví dụ này từ sách "Hướng dẫn đồng thời Java", nhưng vẫn chưa rõ: lý do sử dụng biến động và đồng bộ hóa với nhau trong ví dụ này là gì?
Cuốn sách chính xác mà bạn nói đến là gì? Tôi sẽ mạnh mẽ tư vấn cho cuốn sách Java Concurrency in Practice (http://jcip.net/) để học Java concurrency. –
Tôi đã tìm thấy cuốn sách này ở đây (Trang 167) http://www.sei.cmu.edu/reports/10tr015.pdf Mọi thứ trong cuốn sách này khá rõ ràng ngoại trừ trường hợp này chỉ –
Sử dụng AtomicInteger. – khachik