Ich habe ein float [] [] von Pixeln eines Bildes, ich werde eine Operation für jedes Pixel dieses Bildes durchführen. Meine aktuelle Implementierung ist wie folgt:Wie parallelisiert man ein 2D-Array in Java?
float[][] pixels = image.pixels;
for(x = 0; x < pixels[0].length; x++) {
for(y = 0; y < pixels.length; y++) {
//perform operation on pixel
}
}
Diese Implementierung ist sehr langsam, und ich möchte es durch Parallelisierung der for-Schleifen beschleunigen, wie würde ich mich über das tun dies?
Der beste Weg wäre, diese Pixel mit JDK8 in Streams zu verwandeln. Sie werden feststellen, dass der Arbeitsspeicher (1 MB pro Thread) und der Overhead der Parallelisierung pro Pixel die Conversions verlangsamen. Ein Thread pro Kern ist wahrscheinlich der beste, den Sie tun können. – duffymo