Typen von Thread-Pools in java
Was sind die Arten von thread-pools java. Ich brauche zu implementieren, die eine robuste multi-threaded-Anwendung, die Berechnung, die thread-pool sollte ich verwenden?
- Werfen Sie einen Blick auf die Methoden der Gerichtsvollzieher für die Arten von Threadpools. Sie könnten auch interessiert sein in der ForkJoinPool.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es verschiedene thread-pools java:
Single Thread Executor : Ein thread-pool mit nur einem thread. Damit alle eingereichten Aufgaben werden nacheinander ausgeführt. Methode :
Executors.newSingleThreadExecutor()
Cached Thread Pool : Ein thread-pool erstellt, wie viele threads es braucht, um führen Sie die Aufgabe in parallel. Die alten threads werden wiederverwendet für die neuen Aufgaben. Wenn ein thread nicht während der 60 Sekunden, wird er beendet und aus dem pool entfernt. Methode :
Executors.newCachedThreadPool()
Fixed Thread Pool : Ein thread-pool mit einer festen Anzahl von threads. Wenn ein thread ist nicht für den task, den task in der Warteschlange für eine andere Aufgabe zu enden. Methode :
Executors.newFixedThreadPool()
Scheduled Thread Pool : Ein thread pool aus zu planen zukünftige Aufgabe. Methode :
Executors.newScheduledThreadPool()
Single-Thread Geplant-Pool : Ein thread-pool mit nur einem thread zu planen zukünftige Aufgabe. Methode :
Executors.newSingleThreadScheduledExecutor()
Gibt es viele Typen 😉
Gibt es, zum Beispiel,
ExecutorService
. Dies ist das "basic" - Implementierung ermöglicht Einreichen, Aufgaben, etc. Sie wollen wahrscheinlich verwendenVollstrecker
einen neuen beantragen, da Sie statische factory-Methoden für die häufigsten Szenarien.Seit Java 7 haben Sie auch
ForkJoinPool
.Haben auch einen Blick auf
FutureTask
, da dies eine sehr bequeme Klasse zu bauen, die einzelnen threads.Werfen Sie einen Blick auf Vollzieher.
Jeder gemeinsame
ExecutorService
wird erklärt, und Sie werden wahrscheinlich feststellen, die Ihren Bedürfnissen passt zu Ihnen.Lesen Sie mehr über ThreadPoolExecutors hier:
http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html
Jedoch, es könnte eine gute Idee sein Blick auf die ForkJoinTask API:
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ForkJoinTask.html
Dieser zeigt gute Animationen auf die verschiedenen Parallelität konstruiert, kann dies helfen, wählen Sie
http://sourceforge.net/projects/javaconcurrenta/