题
我已经制作了IRC机器人,并且遇到了洪水问题。我试图找出一种方法来泄漏消息,因此,如果10个人都同时执行命令,则不会淹没机器人。我该怎么做?我当时正在考虑实施队列,但我不确定在那之后去哪里。
我没有为此机器人使用任何框架,也不想切换到任何框架(除非它非常简单)。
解决方案
当然,您可以使用队列。
让一个线程放在队列上,让另一个线程处理项目以不错的速度从队列中。这是经典的实例 消费者 /生产者模式.
只要确保在过度洪水的情况下,您不要让队列吞噬所有记忆。 (例如,如果队列已满,则可以删除消息。)
其他提示
java.util.concurrent可能有您想要的。例如,执行人或仅是阻止类别。
不隶属于 StackOverflow