当序列化为Json时如何避免ConcurrentModificationException异常?

4
我们有一个类,它使用了一个类型为>的私有成员作为存储。这种类型的对象在内存中保存,并且经常被(潜在地)多个线程修改。同时,这些对象(或者说是底层的Map)也会根据请求通过HTTP进行序列化输出。序列化格式为Json,目前正在使用Google的库。
当序列化与引入新的修改同时发生时,我们会看到。从直觉上讲,这是很合理的,因为Gson可能正在迭代被修改的。
我们该如何避免这种情况呢?我们需要始终将Map的深拷贝传递给Gson吗?如果是这样的话,你又该如何实现这个深拷贝,考虑到这个Map可能包含所有的Json基元,包括和

1
你是如何控制这个 Map 的线程安全性的呢? - jtahlborn
1个回答

4

虽然我对将经常更新的对象进行序列化的智慧提出了质疑,但使用ConcurrentHashMap至少可以缓解并发问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接