2009-06-08 15 views
1

Wie implementiere ich einen ThreadPoolExecutor? Was muss getan werden, um es zu benutzen?Java-Threads

+3

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 –

Antwort

8

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.

3

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.

2

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.