Suppongo che non vi sia alcun equivalente di librerie parallele di attività (di .NET 4.0) in Java. È vero? Quali sono i miglioramenti apportati da questa funzionalità di .NET alla concorrenza di Java.Equivalente di attività Libreria parallela in Java
risposta
Java ha il pacchetto java.util.concurrent
e c'è anche lo fork/join framework. Forcella/join è scheduled for inclusion in Java 7, ma può essere utilizzato con downloaded now e Java 6.
Un buon libro per sempre alle prese con la concorrenza in Java è Java Concurrency in Practice, da Brian Goetz e altri.
Habanero-Java library (HJ-lib) è la nuova implementazione di libreria di Habanero-Java (HJ), un modello di programmazione parallela pedagogica in fase di sviluppo a Rice University. HJ-lib è in grado di esprimere molte forme diverse di pattern paralleli tra cui parallelismo dei dati, parallelismo delle condutture, parallelismo dei flussi, parallelismo dei loop e parallelismo divide e conquista.
HJ-lib integra una vasta gamma di costrutti paralleli di programmazione (ad esempio, le attività asincrone, futures, le attività basate sui dati, Forall, barriere, phaser, transazioni, attori) in un unico modello di programmazione che consente combinazioni uniche di questi costrutti (ad esempio, combinazioni annidate di parallelismo tra attività e attore).
HJ-lib è costruito utilizzando lambda expressions e può essere eseguito su qualsiasi JVM Java 8. Le JVM più vecchie possono essere mirate facendo affidamento su strumenti di trasformazione di bytecode esterni per la compatibilità. Il runtime HJ è responsabile dell'orchestrazione della creazione, dell'esecuzione e della terminazione delle attività HJ e include sia gli scheduler per la condivisione del lavoro che quelli per il furto del lavoro.
HJ-lib è anche uno strumento interessante per gli educatori con numerose risorse educative disponibili dal livello del secondo anno COMP 322 course offerto presso la Rice University. Queste risorse possono anche essere utilizzate per conoscere l'API della libreria. Javadoc per l'API è also available.
Ecco una semplice versione HelloWorld:
import static edu.rice.hj.Module1.*;
public class HelloWorld {
public static void main(final String[] args) {
launchHabaneroApp(() -> {
finish(() -> {
async(() -> System.out.println("Hello"));
async(() -> System.out.println("World"));
async(() -> System.out.println("in"));
async(() -> System.out.println("HJ-lib"));
});
});
}
}
Ulteriori esempi per i vari costrutti paralleli sono disponibili presso il COMP 322 course website.
- 1. Libreria parallela attività INotifyPropertyChanged NON genera un'eccezione?
- 2. .net 4.0 Attività Libreria parallela contro MPI.NET
- 3. Attività Libreria parallela vs Sincronizzazione filo nativo
- 4. Attività C# Libreria parallela e NHibernate/Spring.NET
- 5. Attività Libreria parallela - Attività LongRunning vs Multiple Continuations
- 6. Utilizzo della libreria parallela attività con più computer
- 7. Versione parallela di Files.walkFileTree (java o scala)
- 8. Eseguire attività di prova parallela utilizzando gradle
- 9. Numero limite di thread in Task Libreria parallela
- 10. Arresto di un'attività java parallela con formica
- 11. Libreria CCR di Microsoft vs Task parallela
- 12. Libreria aritmetica parallela arbitraria di precisione
- 13. Equivalente di #define in Java?
- 14. quadro di elaborazione parallela in java
- 15. Posso utilizzare la libreria parallela per attività in un progetto .Net 3.5?
- 16. La libreria parallela di attività .NET 4 può utilizzare oggetti COM?
- 17. Clojure equivalente alla libreria lxml di Python?
- 18. Compositore equivalente in JAVA?
- 19. Java equivalente di OpenLayers
- 20. Esiste una libreria java equivalente al comando file in unix
- 21. Riga parallela utilizzando la libreria Clipper
- 22. Come limitare il numero di attività attive in esecuzione tramite la libreria di attività parallele?
- 23. Esiste un equivalente Java della libreria Ostrich di Twitter?
- 24. Java elaborazione dei file parallela
- 25. equivalente di ungetc In java
- 26. di java() equivalente in pitone
- 27. Equivalente di Java a bisect in python
- 28. __LINE__ equivalente in Java?
- 29. attività di background java
- 30. Elaborazione parallela in linux
Il framework fork/join ha qualcosa a che fare con la libreria parallela delle attività? – Nemo
Non sono uno sviluppatore .NET, ma da quello che ho letto su TPL (ad esempio, questo: http://msdn.microsoft.com/en-us/library/dd460717.aspx), fork/join sembra hanno molto in comune con TPL. Ad esempio, "Il TPL scala dinamicamente il grado di concorrenza per utilizzare in modo più efficiente tutti i processori disponibili". In confronto, ciò deriva dalla documentazione di fork/join: "I candidati per l'elaborazione fork/join includono principalmente quelli che possono essere espressi usando tecniche parallele divide et impera: ... suddividerlo in due (o più) parti, quindi risolvere quelle parti in parallelo " –
Il capitolo di esempio disponibile tramite il collegamento è davvero bello. Mi ha fatto venire voglia di prendere il libro, ma è stato pubblicato l'ultima volta nel 2006, quindi non sono sicuro di quanto sia aggiornato. – Philippe