我已经制作了IRC机器人,并且遇到了洪水问题。我正在尝试找出一种将消息分隔开的方法,这样,如果10个人都同时执行一条命令,不会过多地淹没机器人。我该怎么做?我当时在考虑实现一个队列,但是我不确定该去哪里。

我没有为此机器人使用任何框架,也不想切换至任何框架(除非极其简单)。

最佳答案

当然,您可以使用队列。

让一个线程将内容放入队列中,让另一个线程以良好的速度处理队列中的项目。这是经典consumer / producer pattern的一个实例。

只要确保在过多的洪泛情况下不要让队列耗尽所有内存即可。 (例如,如果队列已满,您可以仅丢弃消息。)

关于java - 如何预防洪水,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4474499/

10-13 03:47