我对离散事件模拟期间的出队机制有疑问。
大多数实现使用某种优先级队列,可用于快速检索具有最早时间戳的事件。当无法安排此类事件时会发生什么,例如,它需要资源才能运行。
队列中可能有另一个事件,其时间戳大于在资源上阻塞的事件的时间戳。
例如,假设我们正在为一家杂货店建模,它有单独的结账行,每行有一个收银员。购物者进入结账行是一个事件。我们根据购物者进入结账线的时间将此事件排入队列。但是,我们的模拟执行两个此类事件的顺序不一定是它们进入结账行的时间顺序,因为收银员可能会以不同的顺序释放。
在这种情况下,如何使用仅基于时间戳的优先级队列 - 并且独立于资源可用性 - 工作?