我有一个典型的问题,我想用 Java 可以很容易地处理它。
我的购物队列主要有两种,快速队列和普通队列。然后还有普通客户和优先客户。 如果快速 channel 空闲,优先客户将被分配到快速 channel ,否则他们可以在快速 channel 排队。顾名思义,快速 channel 需要 1 分钟来处理项目,而普通 channel 需要几分钟来处理项目。
现在,我们假设时间从零开始,第一分钟内,一名普通顾客带着 5 件商品到达,他应该被分配到正常 channel ,并应在 10 分钟内结账。同时,在第 5 分钟优先客户携带 2 件元素,那么他应该被分配到快速 channel ,并应在 2 分钟内得到处理。
围绕这个典型的线程队列相关问题的一些想法、方向和指针会很棒。
最佳答案
我的建议
有一个界面 - 客户
还有 2 个类将扩展普通类和快速类
有 2 个队列,一个仅接收 express ,另一个接收客户(普通和 express )
对于 express 客户
检查他需要在快速车道和普通车道等待/完成的预计时间)快速车道可以有 1,普通车道可以有 0, 这意味着他在正常情况下可能会更快完成
如果express更快,检查express队列是否有空位
如果是,把他放入数据
其他
如果队列有槽,则尝试正常
如果是,把他放入数据
其他
把他赶走
对于普通客户
正常尝试
如果是,如果队列有槽位,则将他放入 dat
其他
把他赶走
关于java - 优先购物排队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19123933/