我有一个UDP“服务器”,它接收UDP数据包并处理它们。
我现在实现它的方式,每当我收到一个数据包,并在某个线程池线程上处理每个数据包时,我都会引发一个事件。处理相当简单,我怀疑它比进来的数据包速度快得多。
我现在有另一个应用程序,其中数据包的速率可以更高,我想知道一般情况下是否更好地拥有数据包队列,并以更大批量的方式处理数据包,而不是每次收到活动都会举起活动。
你对这件事有什么看法吗?
答案 0 :(得分:1)
好吧,如果你期待很多数据包,那么在新线程中处理每个数据包可能不是一个很好的选择。您可以制作生产者/消费者系统。您的UDP数据包接收模块将是生产者,它将生成数据包(推入某种队列),然后您可以让消费者读取数据包并进行处理。这将是更快,更可扩展的选项,您可以运行多个消费者线程来处理数据包。
如果可以,最好以批量方式处理数据包。