首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在多线程中维护与给定约束相关的顺序?

如何在多线程中维护与给定约束相关的顺序?
EN

Stack Overflow用户
提问于 2021-08-21 06:06:42
回答 2查看 77关注 0票数 0

也许这是一个标准的多线程问题,并且有一个名字。

一个队列有一个项目列表,每个项目都是:{"resource" : "r1", "action" : "create"}。现在的问题是从这个队列中读取数据,并以多线程的方式处理操作。但是针对特定资源的操作应该是有序的。

例如,示例输入:

[{"resource" : "r1", "action" : "create"}, {"resource" : "r2", "action" : "create"}, {"resource" : "r1", "action" : "update"}]

预期可以在r1之前处理r2,但r1的创建操作应在更新操作之前进行。

我认为和放弃的一个解决方案是为每个资源都有专用线程,但由于线程数量有限,输入很大,这将不起作用。

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2021-08-21 10:19:00

是的,你是对的。它的名称是PriorityBlockingQueue,它是线程安全的,并且可以灵活地以构造函数参数的形式声明队列中对象的自定义比较器。

票数 0
EN

Stack Overflow用户

发布于 2021-08-27 22:28:05

您可以在此处实现驱动程序/工作程序架构。

将有多个工作进程监听其各自的队列。工作人员的数量将取决于事件的数量。

这与分区的概念非常相似,在分区中,我们使用分区键来保证特定分区的顺序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68870563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档