Ich habe die folgenden Code-SchnipselWie verschachtelte Schleifen in Java 7 (Android) parallelisieren
String result;
for (int s1 = 0; s1 < 10; s1++)
for (int s2 = 0; s2 < 100; s2++)
for (int s3 = 0; s3 < 10; s3++)
for (int s4 = 0; s4 < 100; s4++)
{
result = doSomething(s1, s2, s3, s4);
if (result != null)
addResult(result); //adds results to an ArrayList of strings
}
Wie kann ich diesen Code parallelisieren, um es schneller zu machen? Ich habe ähnliche Beiträge hier parallel zu einer einzelnen Schleife gesehen, aber ich möchte diese ganze Sache gleichmäßig parallelisieren, um es anständig auf einem Android-Gerät laufen zu lassen.
3 verschachtelte innere Schleifen ?? Code-stink für sicher – redFIVE
Ich bezweifle, es gibt einen viel schnelleren Weg, es zu tun.Ich wiederhole einfach eine Million Male.Ich sehe nichts, was kann " Vielleicht könnten Sie zwei Schleifen schreiben mit der ersten" s1 = 0; s1 <5 "und zweiten" s1 = 5; s1 <10 ", und führen Sie sie aus gleichzeitig, aber es scheint unnötig komplex.Ich habe keine Ahnung, thoug h. Ich spiele nur mit Gedanken. Vielleicht hätte ich diesen Kommentar gar nicht schreiben sollen. – Gendarme
Es hängt davon ab, was doSomething und addResult tun. Wenn doSomething keine Ergebnisse früherer Schleifen benötigt, können Sie N-Threads starten und jede von ihnen eine Teilmenge der äußersten Schleife ausführen lassen. (Ich gehe davon aus, dass addResult etwas zu einer Liste hinzufügt, wo Sie die Listen im letzten Schritt zusammenführen können). –