gpt4 book ai didi

java - 顺序处理相似字符串的线程

转载 作者:太空宇宙 更新时间:2023-11-04 12:34:10 25 4
gpt4 key购买 nike

我遇到的问题是从队列中读取字符串,该队列将不断更新(为了简单起见,假设只是一个字符串列表):

String[] hostList = {"R1","R2","R3","T1","T2","T3","T4","R4","K1"};

我希望使用一种数据结构来存储正在处理的字符串类型,并让只有一个线程处理类似的字符串(类型R/K/T)

因此,所有相似的项目都会按顺序处理,不同的项目会被其他线程拾取。

这需要线程之间同步,决定是否选择字符串,或者让它等待处理该字符串类型的线程。

请告诉我可以使用哪些数据结构,以及如何使用 Java Executor Service 来实现它。

最佳答案

您可能希望一个线程从列表中删除项目,检查类型,然后将项目排队到特定类型的队列中。然后,每种类型都有自己的队列,以及处理该队列上的项目的自己的线程。某种 BlockingQueue(也许是 LinkedBlockingQueue)可能是一种很好的队列类型,因为它是线程安全的。

如果您特别想使用 ExecutorService,并且仍然希望单独处理不同类型的项目,那么每种类型都需要一个 ExecutorService,并且从列表中删除项目的线程可以将项目提交到适当的 ExecutorService。如果您希望每种类型都有一个以上线程的池,这会更有意义。

关于java - 顺序处理相似字符串的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37520312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com