【发布时间】:2019-04-04 01:50:18
【问题描述】:
我想确保下面的类是线程安全的,我应该为其他方法使用 synchronized 关键字吗?或者使用线程安全的数据结构来存储电子邮件。我该怎么办?
public class RecycleStation {
private static volatile RecycleStation uniqueInstance;
private static List<Email> recycleEmailList ;
private RecycleStation() {
recycleEmailList = new ArrayList<>();
}
public static RecycleStation getInstance() {
if (uniqueInstance == null) {
synchronized (RecycleStation.class) {
if (uniqueInstance == null) {
uniqueInstance = new RecycleStation();
}
}
}
return uniqueInstance;
}
public void RecycleEmail(Email email) {
recycleEmailList.add(email);
}
public void deleteEmail(Email email) {
recycleEmailList.remove(email);
}
public void clear() {
recycleEmailList.clear();
}
}
【问题讨论】:
-
这是个好问题;但是我确实觉得通过研究你可以找到比我能提供的更好的答案。阅读此答案:stackoverflow.com/questions/12289105/…
标签: java design-patterns singleton