0

我正在构建一个客户端-服务器应用程序。服务器保留一个对象列表:

 LinkedList<MyObject> objects;

每次添加或删除对象时,客户端都应该知道这一点。他们已经加入了多播组。让他们收到更改通知的最佳方式是什么?

我应该创建一个扩展 LinkedList 的类并用 Serializable 实现它吗?

4

1 回答 1

2

每次更改时多播更新的列表当然很简单,但可能存在问题。

  • 如果列表变大或更新频繁,则可伸缩性可能是一个问题。考虑将更改作为“增量”发送到列表,而不是每次都发送整个列表。

  • 使用序列化ObjectOutputStream可能会很昂贵,尽管您可以通过编写自定义readObjectwriteObject方法来提高性能。(列表的序列化已经优化......)

  • 你不需要子类LinkedList来做到这一点。已经是了Serializable

  • 您很可能需要同步列表结构以避免竞争条件和混乱,但这会产生潜在的瓶颈。考虑用orList的并发实现替换。QueueDeque

于 2012-10-23T13:11:17.077 回答