【发布时间】:2013-01-10 14:26:59
【问题描述】:
我有一个带有 10 个线程和大量文本数据要处理的线程池,我正在并行运行这些线程,但我无法利用核心 i7 vPro 处理器的完整 cpu 资源,有人帮我解决这个问题。我想要最大的 CPU 利用率。
【问题讨论】:
-
一点代码将有助于回答这个问题。
-
为什么为什么为什么???一个 100 行字的文本文件不需要 8 个线程来处理。你在浪费资源,做傻事。 STAHP
-
将100个句子翻译成6种不同的语言并对文本进行字数统计操作
-
我在 Windows Intel 双核工作站上编写并运行了一个 20 线程进程,我能得到的最好结果是两个内核的利用率为 50%。您的操作系统以及 JRE 决定了线程的处理方式。
-
@DunAnt 您实际上是如何翻译这些句子的?如果您将它们输入到外部服务(如 Google 翻译)中,那么对您的应用程序进行多线程处理就没有任何意义。网络通信产生的开销比实际所需的计算时间大数量级。即使是您自己的翻译引擎,本地字典查找也可能非常昂贵,以至于 I/O 无法满足 8 个线程。
标签: java multithreading jvm threadpool cpu-usage