java - 使用ThreadPool顺序执行类似的任务

标签 java threadpool java-threads

我想要一个ThreadPool来执行客户订单,多个订单应该并行处理,但是对于同一个客户订单应该按生成的顺序处理。 这意味着如果任何线程已经处理 customerA 订单,则在处理第一个订单之前,没有其他线程可以处理 CustomerA 的下一个订单。

是否有适合我的情况的 ThreadPool 实现?

最佳答案

我不认为ThreadPools有这样的标准功能。您需要做的是创建“调度程序”,它将从池中“分配线程”到客户订单。它应该保存唯一订单 ID -> 线程的内部映射。如果有一个订单正在处理新的更新,则该订单应该等待。

对于此任务,您应该研究 Actor 模型(以及 akka - 因为它的实现)。它可以轻松地描述这个解决方案。

关于java - 使用ThreadPool顺序执行类似的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33518684/

相关文章:

java - 从 1.7 升级到 2.0 后,GWT 加载模块时出错

java - 限制 Java EE 应用程序中的并发资源使用

java - 使用 Jest 的服务在线程池上阻塞,为什么?

Javafx:如果服务消息更新(标签绑定(bind)到消息),标签变为空白

java - 如何在线程中处理 RuntimeException

java - Ignite 上的 Spark 是否使用 Ignite 的 Job Stealing(如果已设置)?

java - 基于不同http方法的Spring Security配置

java - 非静态方法 next() 不能从静态上下文中引用

c# - 多次调用相同的方法并显示进度

java - IBM WAS 5.1/Tread 转储分析 : Servlet. Engine.Transports 卡在 java.net.SocketInputStream.socketRead0 上