【发布时间】:2015-05-05 20:33:40
【问题描述】:
如果我有一个带有两个实例变量的简单 Java 对象:
class SerializeMe implements Serializable{
private Foo foo;
private Bar bar;
}
如果Foo 和Bar 类实现了Serializable 接口,我应该很高兴。但我的问题是,如果我正在序列化这个类SerializeMe,那么在多线程环境中foo 或bar 变量的状态可能会在序列化过程中发生变化吗?发生?
如何保证父类SerializeMe的整体状态在序列化过程中不会改变?
在您希望序列化的对象上简单地创建一个锁是最好的方法吗?
【问题讨论】:
-
答案是肯定的,在序列化过程中状态很可能会发生变化。看看stackoverflow.com/questions/3077703/…,如果您还有问题,请告诉我们。
-
是的,这很有可能,而且它不是线程安全的。 stackoverflow.com/questions/8724082/…
-
最好的办法是不要尝试序列化可能会被并发修改的对象。序列化通常应在应用程序流程中明确定义的点执行,而不是任何时候。
标签: java serialization