我必须开始一些关于任务并行性的工作。我目前的应用程序只不过是生产者消费者模式的实现,但我觉得在某种程度上可以实现并行性。
我的Runtime.getRuntime.availableProcessors给出24,在我的机器上有大约8个并行运行的java进程,我大致假设每个进程有大约三个处理器要处理。我仔细阅读了这篇文章 http://codeidol.com/java/java-concurrency/Applying-Thread-Pools/Sizing-Thread-Pools/ 作为一个抬头。但我仍在努力寻找合适的方法来寻求并行解决方案。我想到的事情是: - a)确定计算机上的处理器数量 b)确定每个java进程的CPU利用率 c)确定线程等待数据库结果的时间与线程实际使用数据的时间之比 有些人可以指导我一个好的pdf,以便我可以逐步采用性能工程方法吗?
答案 0 :(得分:0)
您对“Java使用所有可用处理器”的假设极有可能是错误的。请记住,JVM是一个过程本身,您的字节码运行在该过程上,因此您比使用本机代码运行这些程序时更容易受到操作系统资源使用限制。