java 中的枚举是如何线程安全的? 我正在使用枚举实现单例(根据 Bloch 的 Effective Java), 我应该担心我的单例枚举的线程安全吗? 有没有办法证明或反驳它是线程安全的?
// Enum singleton - the preferred approach
public enum Elvis {
INSTANCE;
public void leaveTheBuilding() { ... }
}
谢谢
最佳答案
正如@Mike 所说,枚举的创建保证是线程安全的。但是,添加到枚举类的方法不提供任何线程安全保证。特别地,方法 leaveTheBuilding
可以由多个线程同时执行。如果此方法有副作用(更改某些变量的状态),那么您需要考虑保护它(即,使其同步
)或其部分。
关于java - java中的枚举如何线程安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2531873/