"Parallel.For" für Java?
Ich Frage mich, ob es eine Parallel.Für entspricht .net-version für Java?
Wenn es könnte, jemand bitte liefern Sie ein Beispiel? danke!
Kommentar zu dem Problem - Öffnen
Vielleicht könnten Sie einen link zur Referenz für Parallel.für? Ich nicht leicht zu finden und nicht jeder java-Entwickler kennt .net?
@kirk ??? kann nicht finden,
Parallel.für
in einer der Listen... @Emil thks, ich denke ich bekomme es jetzt Ab Java 8, diese (und andere parallele Vorgänge) finden Sie auf
java.util.stream.Stream
, in der Regel den Zugriff durch "Sammlung".parallelStream()
. Siehe stream-api. InformationsquelleAutor der Frage Jamie | 2010-10-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, die nächste Sache wäre:
Basierend auf TheLQ Kommentare, Sie würde SUM_NUM_THREADS zu
Runtime.getRuntime().availableProcessors();
Edit: Entschieden, um eine grundlegende "Parallel.Für die" Umsetzung
Beispiel für die Verwendung von Parallel.Für
Ich denke, diese Umsetzung ist wirklich mehr wie Parallel.ForEach
Bearbeiten
Ich habe es auf GitHub, falls es jemand interessiert. Parallel Zum auf GitHub
InformationsquelleAutor der Antwort Matt Crinklaw-Vogt
MLaw Lösung ist sehr praktisch, Parallel.ForEach. Ich habe ein bisschen eine Veränderung, eine Parallele.Für.
InformationsquelleAutor der Antwort Weimin Xiao
Aufgebaut mlaw Vorschlag, füge CountDownLatch.
Hinzufügen chunksize zu reduzieren submit().
Wenn getestet mit 4 Millionen items-array, das eine
gibt 5X schneller über die sequenzielle for() auf
mein Core i7 2630QM CPU.
InformationsquelleAutor der Antwort santiwk
Fork-join-framework in Java 7 ist für die Unterstützung von Parallelität. Aber ich weiß nicht über eine genaue Entsprechung für
Parallel.For
.InformationsquelleAutor der Antwort Emil
Hier ist mein Beitrag zu diesem Thema https://github.com/pablormier/parallel-loops. Die Verwendung ist sehr einfach:
Es ist auch möglich, um manche Verhaltensweisen Aspekte, wie die Anzahl der threads (per default verwendet eine cached thread pool):
Alle der code ist eigenständig in einer java-Klasse und nicht mehr Abhängigkeiten als die JDK. Ich würde Sie auch bitten zu prüfen, die neue Art zu parallelisieren in einem funktionalen Stil, Weg mit Java 8
InformationsquelleAutor der Antwort Pablo R. Mier
Eine einfachere option wäre
InformationsquelleAutor der Antwort Peter Lawrey
Gibt es ein äquivalent für Parallel.Für als java-Erweiterung. Es wird aufgerufen, Ateji PX, Sie haben eine Kostenlose version, die Sie spielen können. http://www.ateji.com/px/index.html
Es ist das genaue äquivalent parallel.und ähnlich sieht.
For ||
Weitere Beispiele und Erläuterungen bei wikipedia:
http://en.wikipedia.org/wiki/Ateji_PX
Geschlossen, was in Java IMO
InformationsquelleAutor der Antwort Clippy
Synchronisation oft tötet der speedup der parallelen for-Schleifen. Daher die parallele for-Schleifen Häufig müssen Sie Ihre privaten Daten und eine Reduktion des Mechanismus zu verringern, alle threads, die privaten Daten zu umfassen, die ein einzelnes Ergebnis.
So, ich habe erweitert die Parallele.Für die version von
Weimin Xiao
durch eine Reduktion Mechanismus.Hier ist ein einfacher test Beispiel: eine parallele Zeichen-Zähler unter Verwendung einer nicht-synchronisierten anzeigen.
InformationsquelleAutor der Antwort Chris
Habe ich eine aktualisierte Java-Parallel-Klasse, die tun können, Parallel.Für Parallel.ForEach Parallel.Aufgaben und partitioniert, die parallel loop. Source-code ist wie folgt:
Beispiele für die Verwendung dieser parallele Schleifen sind die folgenden:
InformationsquelleAutor der Antwort Weimin Xiao
Source code :
https://github.com/crammeur/MyInvoices/blob/master/crammeurLibrairy/src/main/java/ca/qc/bergeron/marcantoine/crammeur/librairy/utils/Parallel.java
[UPDATE]
Parallel-Klasse :
javaparallelemultithreading
InformationsquelleAutor der Antwort