Wie implementiere ich einen ThreadPoolExecutor? Was muss getan werden, um es zu benutzen?Java-Threads
Antwort
Die API-Spezifikation für die Klasse ThreadPoolExecutor
verfügt über vier Konstruktoren, die zum Erstellen einer Instanz der ThreadPoolExecutor
verwendet werden können.
Die Executors
Klasse hat auch Methoden wie newCachedThreadPool
und newFixedThreadPool
Methoden, aber die sind nur als Rückkehr ein ExecutorService
aufgelistet, so dass es nicht unbedingt ein ThreadPoolExecutor
sein.
Für weitere allgemeine Informationen über Executors
und das Java-Concurrency-Paket enthält die Lesson: Concurrency von The Java Tutorials weitere Informationen. Insbesondere kann der Abschnitt Executors und Thread Pools von Interesse sein.
ist eine Schnittstelle. Durch die Implementierung können Clients Ihnen ausführbare Aufgaben übergeben, die dann auf eine bestimmte Weise ausgeführt werden. ThreadPoolExecutor ist eine Klasse, die diese Schnittstelle (und ExecutorService) implementiert. Es verwendet einen Thread-Pool, damit mehrere Threads Jobs ausführen können, ohne dass für jeden Job ein neuer Thread erforderlich ist. ThreadPoolExecutor kann subclassed sein, oder Sie können es nur mit einem der öffentlichen Konstruktoren instanziieren.
Andere Methoden, z. B. Executors.newFixedThreadPool, geben einen Thread-Pool einer Art zurück, jedoch nicht (unbedingt) einen ThreadPoolExecutor.
Java Concurrency in der Praxis - Addison Wesley ISBN: 0321349601 Ich habe dieses Buch verwendet, um über Executors zu lernen. Ich habe eine Menge guter Beispiele, die man stehlen kann.
Ich schlage vor, Sie mit dem Tutorial für diese Klasse starten http://java.sun.com/docs/books/tutorial/essential/concurrency/exinter.html
Haben Sie einen neuen implementieren müssen, oder einfach nur einen Thread-Pool verwenden? Wenn Letzteres vorhanden ist, gibt es mehrere Implementierungen in der API –