我正在使用 ThreadSafeList 并且我从它获得了很大的里程数,用于将数据从进程流式传输到网络服务器,然后在数据进入客户端时将数据流式传输回来。在内存中,我使用 Spring Caching(引擎盖下的 ehcache)将数据保存在 JVM 中,一切都很好。当我开始达到堆限制并且 Spring Caching 在我使用它时开始将我的 ThreadSafeList 序列化到磁盘时,问题就开始了,导致 ConcurrentModificationExceptions。我可以覆盖序列化接口的私有 writeObject 和 readObject 方法来解决问题吗?我不确定如何执行此操作,或者我是否应该放弃我的 ThreadSafeList。
当我开始这个程序时,我使用的是 BlockingDeque,但这还不够,因为当我放入并采用结构时,我不记得要缓存的数据......我不能使用 ConcurrentMap 因为我需要订购在我的列表中...我应该选择 ConcurrentNavigableMap 吗?我觉得自己使用 ThreadSafeList 和自定义私有序列化函数可能是一种浪费?