У меня вопрос о многопоточности (параллелизме) в java. В самом деле, я осуществил две программы для вычисления множества Мандельброта:Многопоточные вычисления в Java
Первые запуски п потоков и каждый поток вычисляет часть высоты Мандельброта (пример: https://www.logre.eu/mediawiki/images/4/49/Mandelbrot_h_block.png).
Вторая запускает пул из n потоков, где каждый поток вычисляет линию пикселей Мандельброта (пример: https://www.logre.eu/mediawiki/images/f/f2/Mandelbrot_horizontal.png).
Я сделал другое профилирование на машине двух ядер, и я не понимаю, почему первая программа быстрее, чем второй, если число потоков (п) больше, чем количество ядер. Это наоборот, если число потоков меньше, чем количество ядер.
Может ли кто-нибудь мне помочь?
Примечание: существует ли ограничение потоков для вычисления этой программы?
Отсутствует вся необходимая деталь. Не видя кода или как его профилировать, мы не знаем, что вы сделали это правильно и честно. Не видя таймингов, мы не знаем, насколько значительна разница. Мы даже не знаем 'n'. – weston