Từ khóa đồng bộ hóa có cần phải được áp dụng cho từng phương pháp của lớp thực hiện mẫu đơn như thế này không?Java đồng bộ hóa trong mẫu đơn
public class Singleton {
private Singleton(){}
public synchronized static Singleton getInstance()
{
if(instance == null)
instance = new Singleton();
return instance;
}
public void DoA(){
}
}
Kể từ Singletons không tiếp xúc với một nhà xây dựng cộng đồng và các phương pháp getInstance() được đồng bộ, người ta không cần phải đồng bộ phương pháp DoA và bất kỳ phương pháp nào khác hiển thị bởi lớp Singleton.
Đây có phải là lý do chính xác không?
En chung sychronization phụ thuộc nếu bạn truy cập dữ liệu được chia sẻ trong phương pháp này. – PeterMmm
[Điều này sẽ trả lời câu hỏi của bạn] (http://stackoverflow.com/questions/777849/proper-usage-of-synchronized-singleton) – user1406177
Tôi không nghĩ vậy, Nếu getInstance được đồng bộ hóa. điều đó không có nghĩa là DoA được đồng bộ hóa. quá. –