gpt4 book ai didi

java - 获取锁以进行序列化

转载 作者:太空宇宙 更新时间:2023-11-04 11:23:01 26 4
gpt4 key购买 nike

我是 Java 新手。我正在通过写小程序来练习。

在其中一个程序中,我有一个包含某些配置的对象。此配置可以在运行时更改。我通过序列化对象将配置保存到文件。

在我看来,我必须在序列化之前锁定正在序列化的对象,以确保它在序列化期间不会更改。

synchronized (myObject)
{
output.writeObject(myObject);
}

但是我读到应该尽量避免在同步块(synchronized block)或任何其他形式的锁下进行 IO 操作(例如写入文件)。这确实有道理,因为 IO 操作可能需要相对较长的时间,导致其他线程等待/阻塞。

我想知道是否有办法避免锁定下的序列化...欢迎任何建议。

最佳答案

此问题的几个解决方案是:

  1. 仅序列化不可变对象(immutable对象)
  2. 创建对象的副本并序列化该副本

关于java - 获取锁以进行序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44706949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com