gpt4 book ai didi

Java序列化导致并发修改异常

转载 作者:行者123 更新时间:2023-11-29 06:14:27 27 4
gpt4 key购买 nike

我的程序每秒更新大约一百次存储在 ArrayList 中的数百个对象。我已经实现了 Java 的内置序列化,它运行良好,除非在对象运行时尝试序列化,在这种情况下,我可能必须序列化六次才能工作(每次失败的尝试都会抛出一个异常(exception))。我尝试将 arraylist 标记为 transient ,但是当我加载序列化文件时,抛出了一个空指针异常。所以我尝试在无参数构造函数中初始化 transient 数组列表,但没有任何帮助。我该怎么办?谢谢。

最佳答案

首先确保您已同步访问您的ArrayList,例如当你初始化它时:

List<String> list = Collections.synchronizedList(new ArrayList<String>());

当你需要序列化它时,抓取一份由于同步而保持一致的副本:

List<String> copy = new ArrayList<String>(list);

现在您可以安全地序列化此副本,而不会阻止对主列表的访问。

关于Java序列化导致并发修改异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5608223/

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