我们有一个 ThreadPoolExecutor,可以将任务从队列中取出来执行。对于给定类型的对象,例如。用户,我们可以在不同实例之间进行并行操作。但是,对单个实例的操作必须按顺序进行。
线程池无法保证这一点,因为由于线程调度,连续插入的两个项目可能会以不确定的顺序完成。我没有看到标准 java 库可以实现这一点。是否有第三方解决方案提供此功能。
我们可以自己实现这个,但这是一个相当复杂的问题,我宁愿在这一点上采用强化的解决方案。
谢谢
最佳答案
使用 PriorityBlockingQueue
创建 ThreadPoolExecutor
怎么样。 “优先级”可以定义为一个比较器,它可以通过实例 ID 或允许您对相似项目进行分组的内容进行区分。
关于java - 对 ThreadPool Executor 中特定对象的操作进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5250154/