java - 对 ThreadPool Executor 中特定对象的操作进行排序

标签 java scheduling threadpool

我们有一个 ThreadPoolExecutor,可以将任务从队列中取出来执行。对于给定类型的对象,例如。用户,我们可以在不同实例之间进行并行操作。但是,对单个实例的操作必须按顺序进行。

线程池无法保证这一点,因为由于线程调度,连续插入的两个项目可能会以不确定的顺序完成。我没有看到标准 java 库可以实现这一点。是否有第三方解决方案提供此功能。

我们可以自己实现这个,但这是一个相当复杂的问题,我宁愿在这一点上采用强化的解决方案。

谢谢

最佳答案

使用 PriorityBlockingQueue 创建 ThreadPoolExecutor 怎么样。 “优先级”可以定义为一个比较器,它可以通过实例 ID 或允许您对相似项目进行分组的内容进行区分。

关于java - 对 ThreadPool Executor 中特定对象的操作进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5250154/

相关文章:

c - 在 Linux 上等待多个条件变量而没有不必要的 sleep ?

java - Callable 接口(interface)是一个线程吗?它工作时我无法运行任何东西

java - 如何等待 2 分钟让方法完成,然后退出并继续?

java - 在方法内嵌套 while 循环后无法返回值

java - 禁用 PathVariables 的假编码

c - 为什么我的C多线程调度程序出现段错误(核心转储)

c - vTaskDelay 和 _delay_ms 之间的行为差​​异是什么?

multithreading - 为什么我的 Futures 没有最大化 CPU?

java - 将各个位写入 ByteArrayOutputStream

java - 我如何使用 url 将 list<String> 传递到服务器