【发布时间】:2012-08-17 16:29:13
【问题描述】:
我有一个 java 程序,它可以访问一些网站,将网站的 HTML 转换为 XML,然后在 XML 上运行一些 xquery 命令,最后将结果存储到 csv 中,然后将其上传到云文件存储(如 Amazon S3) .
现在,我想将工作分成多个线程,以便更快地完成 - 但我如何确定最适合我的工作的线程数?
我想为不同类型的 Amazon EC2 实例确定我应该允许的线程数...是否有库或框架可以帮助我解决这个问题?
或者,我是否必须在 Amazon EC2 实例上手动运行代码,并不断更改线程数,并测量所用时间?
具体来说,我想在处理所有线程所花费的总时间与允许同时运行的线程数之间保持平衡......如果我能清楚地看到具有不同 CPU/RAM 的不同服务器的这种相关性能力会很棒...任何建议/指导将不胜感激...
【问题讨论】:
-
作为一般准则,机器上的线程数多于内核数无法加快处理速度,但也有一些例外情况,尤其是当线程正在等待其他任务完成且未完全完成时使用。
标签: java multithreading concurrency