java - 优先购物排队

标签 java multithreading queue

我有一个典型的问题,我想用 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/

相关文章:

java - 如果在 Wildfly 13 EE8 上部署多个应用程序,Infinispan 命令调度程序会出现问题

android - 可以从工作线程调用 NotificationManager.notify() 吗?

java - 普通 Java 中类似主题的并发队列

java - 使用 java Files.walk 仅从根文件夹获取文件名并跳过其子目录时出现问题

java - 在集合泛型中使用 '? extends ' 和 '? super '

Ruby 线程使用不同的参数调用相同的函数

java - 运行一个无限的 java 程序以及如何影响性能

python - 如何从不同线程的事件更新 Gtk.TextView?

email - laravel4.2队列发送邮件问题

java - : Object[]{value1, value2} 的构造是什么?