這是後續問題:Java. Serialization of objects in a multithreaded environment。Java。序列化高度不穩定對象集合的安全方法?
假設我有一個總是由多個線程執行的對象集合。
public class AlwaysChanging implements Serializable {
// ... state ...
public synchronized void updateFromThread1(int data) { /* ... */ }
public synchronized void updateFromThread2(int data) { /* ... */ }
}
什麼是序列化Collection<AlwaysChanging>
的安全方法?
如果訪問模式主要是寫入,那麼'ReadWriteLock'不會有太大的幫助,如此處所示。 – 2010-06-20 16:03:53
有多個數據源通過一個接口從不同的線程推送數據(它們實際上並不叫'updateFromThreadX' :-)。每個AlwaysChanging對象都是這些數據源的訂閱者,並且可以一次處理多個線程。 「AlwaysChanging」本質上是事件驅動的;唯一的其他設計考慮可能是對輸入數據進行排隊(但這可能是不可能的,但這不能解決序列化問題)。 – Jake 2010-06-20 16:19:04