使用轮询系统或基于事件的计时器,什么是更快和更好的练习?
我目前正与更高级的同事就如何实施某些关键任务逻辑进行讨论。情况如下:
我认为实现逻辑的最佳方法是创建一个定时器,当消息中的消息时会触发逻辑,但我的同事认为我最好不要轮询消息列表查看是否已达到执行时间。
他的论点是,投票系统更安全,因为它不那么复杂,因此不太可能被程序员搞砸。我的论点是,通过我的方式实现它,我们减少了计算负荷的减少,因此当我们真正想要它执行时更有可能执行逻辑。我该如何实施呢?为什么?
请求的信息
答案 0 :(得分:1)
java.util.Timer有效地完成了你的同事的建议(事实上,最后,实际上并没有那么多方法)。
它维护一个TimerTasks集合,并等待它上面的新活动,或者直到执行下一个任务为止。它不会轮询集合,它“知道”下一个任务将在N秒内触发,并等待直到发生这种情况或其他任何事情(例如添加或删除TimerTask)。这总体上比投票更好,因为它大部分时间都在睡觉。
所以,最后,你们都是对的 - 你应该使用一个计时器,因为它基本上是你的同事想要做的事情。