我们有一个应用程序处理一系列文档(基本上是在输入目录中找到的所有文档)。文件被一一读取,然后进行处理。该应用程序显然是线程的候选者,因为处理一个文档的结果完全独立于处理任何其他文档的结果。我的问题是如何划分工作。
拆分工作的一种明显方法是计算队列中的文档数量,除以可用处理器的数量并相应地拆分工作(例如,队列有 100 个文档,我有 4 个可用处理器,我创建 4 个线程和将队列中的 25 个文档提供给每个线程)。
但是,一位同事建议我可以为队列中的每个文档生成一个线程,然后让 java JVM 对其进行排序。我不明白这怎么可能。我确实知道第二种方法会产生更清晰的代码,但它是否与第一种方法一样有效(甚至更有效)?
任何想法将不胜感激。
艾略特