有效地处理事件列表

时间:2015-05-27 05:42:54

标签: java

我有一个事件列表

List<Event> events;

每个事件都有一个动作和时间应该激活此动作。此列表已排序,但连续事件之间的时间间隔可能很大或很小。

我对使用while循环创建一个单独的线程感到困惑,但由于时间间隔可能很大,因此效率不高。一个改进可能是这样的:

  1. 检查第一个元素

  2. 如果日期正常

    2.1流程事件

    2.2从列表中删除事件

  3. 如果日期不合适

    3.1计算diff = event_time - actual_time

    3.2为困难时间睡觉

    3.3转到1.

  4. 可以做得更好吗?_

    我的问题是在给定时间内没有运行特定方法。应该按照与事件列表中相同的顺序处理这些事件。两个连续的事件可能会有相同的时间。

1 个答案:

答案 0 :(得分:0)

使用java.util.concurrent.ScheduledThreadPoolExecutor

在延迟使用后安排任务:

schedule(Runnable command, long delay, TimeUnit unit)

这是JavaDoc:ScheduledThreadPoolExecutor

以下是一些示例:Examples