我有以下问题,我不确定如何设计部分解决方案:
我有一个大文本文件,我逐行阅读。我需要处理每一行并更新一个 HashMap。
AFAIK 我需要一个生产者线程从文件中读取行,并将这些行分派到消费者线程池。消费者线程应该更新 ConcurrentHashMap 然后获取新行。
我的问题是:消费者线程如何访问 ConcurrentHashMap?如果我使用固定的线程池,生产者是否需要先将行添加到队列中,还是可以简单地提交或执行新的消费者?
编辑:Zim-Zam 是正确的;我希望消费者在完成后将他们的结果转储到 ConcurrentHashMap 中。
我在主线程中创建 ConcurrentHashMap,并将对它的引用传递给构造函数中的消费者。消费者应该在他们的运行方法中添加或增加一个 AtomicInteger。当所有行都被读取并且消费者完成时,我如何在主线程中判断?
再次感谢。