java如何为序列化创建线程安全列表?
我使用的是ThreadSafeList,我从中获益匪浅,可以将数据从进程流式传输到Web服务器,然后将数据流式传输回客户端。在内存中,我使用Spring缓存(引擎盖下的ehcache)将数据保存在JVM中,一切正常。当我开始达到堆限制,Spring缓存开始在我使用ThreadSafeList时将其序列化到磁盘,导致ConcurrentModificationException时,问题就开始了。我是否可以覆盖序列化接口的私有writeObject和readObject方法来解决此问题?我不确定如何做,或者是否应该放弃我的ThreadSafeList
当我启动这个程序时,我使用了一个BlockingDeque,但这还不够,因为当我放置和接受这个结构时,我记不起要缓存的数据。。。我不能使用ConcurrentMap,因为我需要在列表中排序。。。我应该去ConcurrentNavigableMap吗?我觉得使用ThreadSafeList和自定义私有序列化函数来实现自己的功能可能是一种浪费
# 1 楼答案
Collections.synchronizedList()
将使任何列表都是线程安全的,并支持序列化(如果基础列表是可序列化的)。如果需要迭代列表,请记住在列表上同步例如