- 在这种情况下,序列化安全吗?
否。正如@Tom Hawtin所说,您将需要执行自己的锁定,以确保在序列化对象时不会更改对象。
- 它是如何工作的?也就是说,ObjectOutputStream是否将执行序列化块,直到不再有任何线程在Counter上运行了?
ObjectOutputStream不会在引擎盖下锁定。如有必要,由应用程序决定。
- 如果Counter的同步不使用固有锁,而是使用其他锁怎么办?
然后,在序列化发生时,您的应用程序还需要使用其他锁定来锁定更新。
如果您要序列化的状态仅由一个对象的状态和两个字段组成,则锁争用和粒度应该不成问题。但是,如果对象很复杂,那么锁争用就很成问题了,获取锁而又没有死锁风险的问题也很成问题。这种情况需要仔细设计。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)