【发布时间】:2016-09-06 12:48:17
【问题描述】:
我有一个关于 java 中的多线程(并行性)的问题。事实上,我实现了两个程序来计算 Mandelbrot 集:
第一次启动 n 个线程,每个线程计算 Mandelbrot 高度的一部分(例如:https://www.logre.eu/mediawiki/images/4/49/Mandelbrot_h_block.png)。
第二个启动一个包含 n 个线程的池,其中每个线程计算 Mandelbrot 的一行像素(例如:https://www.logre.eu/mediawiki/images/f/f2/Mandelbrot_horizontal.png)。
我在双核机器上进行了不同的分析,如果线程数 (n) 大于内核数,我不明白为什么第一个程序比第二个程序快。如果线程数低于内核数,则情况相反。
谁能帮帮我?
注意:计算这个程序的线程是否也有限制?
【问题讨论】:
-
这缺少所有需要的细节。如果没有看到代码或您如何对其进行分析,我们不知道您是否正确且公平地完成了该操作。没有看到时间,我们不知道差异有多大。我们甚至不知道
n。
标签: java multithreading parallel-processing computation