这就是我想要实现的目标:我正在通过蜂窝网络发送一些数据包。我还嗅探流量以检查对这些数据包的响应。响应可能会在 10 小时窗口内的任何地方出现。
我发送的数据包都是唯一的(发送和接收),我想知道匹配数据包和响应的最佳方式。
我可以创建一个 HashMap ,并将实时发送的每个数据包放入其中,并在返回时将其与响应进行匹配。此时,has 映射条目要么保留在 HashMap 中,要么被删除(在响应之后)。
那么,现在的问题是:考虑到我们每分钟发送 2000 个数据包,实现这一目标的最佳方法是什么? hashmap 足够健壮吗?搜索时间怎么样?
最佳答案
我认为 HashMap 本身不够健壮,因为它不是线程安全的。我会尝试ConcurrentHashMap。
对于大量数据,请寻找一些缓存实现 - 这些实现通常能够溢出到磁盘并有时间过期,因此您可以免费进行清理。
关于java - 实时匹配记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7127770/