Ich habe eine Frage zu Multithreading (Parallelität) in Java. Tatsächlich realisiert ich zwei Programm eine Mandelbrot-Menge zu berechnen:Multithreading-Berechnungen in Java
Die ersten Starts n Fäden und jeder Thread berechnet einen Teil der Höhe des Mandelbrot (Beispiel: https://www.logre.eu/mediawiki/images/4/49/Mandelbrot_h_block.png).
Die zweite startet einen Pool von n Threads, wobei jeder Thread eine Zeile von Pixeln des Mandelbrot berechnet (Beispiel: https://www.logre.eu/mediawiki/images/f/f2/Mandelbrot_horizontal.png).
Ich habe unterschiedliche Profilierung auf zwei Kerne Maschine und ich verstehe nicht, warum das erste Programm ist schneller als die zweite, wenn die Anzahl der Threads (n) größer ist als die Anzahl der Kerne ist. Dies ist das Gegenteil, wenn die Anzahl der Threads niedriger ist als die Anzahl der Cores.
Kann mir jemand helfen?
Hinweis: Gibt es auch ein Limit für Threads, um dieses Programm zu berechnen?
Dies fehlt alle erforderlichen Details. Ohne den Code zu sehen oder wie Sie ihn profiliert haben, wissen wir nicht, dass Sie das richtig und fair gemacht haben. Ohne die Zeiten zu sehen, wissen wir nicht, wie bedeutend der Unterschied ist. Wir wissen nicht einmal 'n'. – weston