Das Beispiel dieses Artikels zeigt die Verwendung der Executor -Schnittstelle in Java an. Teilen Sie es für alle für Ihre Referenz. Die Einzelheiten sind wie folgt:
1. Definition der Executor -Schnittstelle in Java
public interface Executor {void execute (Runnable Commit);}
2. Erstellen Sie einen Thread -Pool nach statischen Fabrikmethoden unterhalb der Ausführungen:
A) NeufixedThreadpool: Erstellen Sie einen langen Thread -Pool. Nach Erreichen der maximalen Anzahl von Threads steigt die Anzahl der Threads nicht mehr.
Wenn ein Faden aufgrund einer nicht erwarteten Ausnahme endet, ergänzt der Thread -Pool einen neuen Thread.
b) Newcachedhreadpool: Erstellen Sie einen zwischengespeicherbaren Fadenpool. Wenn die Länge des Pools die Bearbeitungsanforderungen überschreitet, können Sie die Leerlauffäden wiederherstellen.
c) Newsinglethreadpool: Erstellen Sie einen einzigen Thread -Executor.
D) Newsschoneduledhreadpool: Erstellen Sie einen langfristigen Thread -Pool und unterstützt Zeit -Perioden- und regelmäßige Aufgabenausführung.
Ähnlich wie Timer. Timer basiert jedoch auf der absoluten Zeit, die für Änderungen in der Systemuhr empfindlich ist, während geplanter Threadpoolexecutor nur die relative Zeit unterstützt.
3. Vergleichen Sie die Anwendungszusammenfassung der Timerklasse
1) Timer ist der einzige Thread, der alle Timeraufgaben ausführt. Wenn eine Aufgabe keine Zeit mehr hat, wird dies zu einer anderen Zeit von Timertask -Zeiten zu Problemen führen.
2) Wenn Timrtask deaktivierte Abnormalitäten auswirft, hat der Timer ein unvorhersehbares Verhalten. Daher kann geplantesReadpoolexecutor Timer vollständig ersetzen.
3) Um den Lebenszyklus von Ausführungsdiensten zu lösen, erweitert die ExecutorService -Schnittstelle den Executor. Der Thread -Pool umfasst 3 Staaten: Laufen, Herunterfahren, Kündigen.
4.. Callable und Future
Da Runnable den Wert nicht zurückgibt und nicht aus der überprüften Abnormalität herausgeworfen werden kann, ist Callable eine bessere Abstraktion. (Callable <Poid> gibt die Aufgabe ohne Rückgabewert an).
Future beschreibt den Lebenszyklus der Aufgabe und bietet verwandte Methoden, um die Ergebnisse der Aufgabe zu erhalten, die Aufgabe zu stornieren, die Aufgabe zu überprüfen, um sie zu vervollständigen oder zu stornieren.
5.comPlingService integriert die Funktionen von Executor und Blockingqueue.
Die Einstellung und Umfrage kann die Fertigstellung der Aufgabe blockieren.
Es ist zu hoffen, dass dieser Artikel für Java -Programmdesign aller hilfreich ist.