想象一个生产者-消费者场景,线程 A 产生条目,一对多的其他线程消耗它们。
为此,我将一堆条目传递给每个消费者线程。
这样做我问自己是否更便宜(主要是 CPU 使用,其次是内存):
- 为每个消费者线程提供一个单独的实例
HashMap
。将 传递Map
给一个消费者后,Map
将创建一个新实例并将其用于将下一个生成的条目传递给下一个线程
或者
- 使用单个并为每个消费者线程
ConcurrentHashMap
创建一个,并在将 传递给线程后清除- 以便每个 Iterator 包含其自己的底层视图。Iterator
Iterator
Map
Map
你怎么看?一个或多或少的通用答案可能吗?
或者它是否强烈依赖于一些变量,如条目数、线程等?
编辑:或者我应该使用其他可以更好地解决这些问题的数据结构吗?