我正在为我的离散事件模拟开发一个时钟类。我已经在 PriorityQueue 中举行了一些活动,因此根据哪个活动具有最近的活动时间进行排序。但是,有一件事我无法理解。在我读过的关于离散事件模拟的论文中,明确指出时钟从一个事件跳到另一个事件,因此没有必要有一个“滴答”的时钟。
但是这将如何工作,我有一个 EventScheduler 类,它将事件保存在 PriorityQueue 中。因此,在确定下一个事件发生的时间之后,我是否可以在时钟中调用一个“setTime”方法,EventScheduler 在下一个事件的给定时间调用该方法?但是,它永远不会真正像时钟一样运行,它只会一直跳到下一个事件?
我在想时钟运行(滴答声),然后它知道 EventScheduler 何时会发生事件,当时钟到达该时间时,它会处理事件,更新系统状态并可能生成输出事件。
抱歉有点不清楚,但我只是对有关时钟如何工作的任何提示感兴趣,它是否会滴答作响,然后仅在事件发生时“做”事情,或者它只是从一个事件跳到另一个事件?
还有你建议我可以使用的java中的任何内置功能吗?例如定时器类