Java。多线程环境中对象的序列化

Java。多线程环境中对象的序列化,第1张

Java。多线程环境中对象的序列化
  • 在这种情况下,序列化安全吗?

否。正如@Tom Hawtin所说,您将需要执行自己的锁定,以确保在序列化对象时不会更改对象。

  • 它是如何工作的?也就是说,ObjectOutputStream是否将执行序列化块,直到不再有任何线程在Counter上运行了?

ObjectOutputStream
不会在引擎盖下锁定。如有必要,由应用程序决定。

  • 如果Counter的同步不使用固有锁,而是使用其他锁怎么办?

然后,在序列化发生时,您的应用程序还需要使用其他锁定来锁定更新。

如果您要序列化的状态仅由一个对象的状态和两个字段组成,则锁争用和粒度应该不成问题。但是,如果对象很复杂,那么锁争用就很成问题了,获取锁而又没有死锁风险的问题也很成问题。这种情况需要仔细设计。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5506365.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存