我正在构建一个客户端 - 服务器应用程序。 服务器保留一个对象列表:
LinkedList<MyObject> objects;
每次添加或删除对象时,客户端都应该知道这一点。 他们已加入多播组。 什么是让他们收到变更通知的最佳方式?
我应该创建一个扩展LinkedList并使用Serializable实现它的类吗?
答案 0 :(得分:2)
每次更新时多次更新更新的列表肯定很简单,但可能存在问题。
如果列表变大或更新频繁,则可扩展性可能是一个问题。考虑将更改作为“增量”发送到列表,而不是每次都发送整个列表。
使用ObjectOutputStream
进行序列化可能会很昂贵,但您可以通过编写自定义readObject
和writeObject
方法来提高性能。 (列表的序列化已经优化了......)
您无需子类LinkedList
来执行此操作。它已经是Serializable
。
您很可能需要同步列表结构以避免竞争条件和混乱,但这会产生潜在的瓶颈。考虑将List
替换为Queue
或Deque
的并发实施。