Ist LinkedBlockingQueue eine richtige Wahl für einen Erzeuger-Verbraucher wie Szenario?
-
27-09-2019 - |
Frage
habe ich einen Erzeuger-Verbraucher wie Szenario. Klasse A erzeugt Objekte vom Typ E. Ich habe es in einer statischen Datenstruktur in der Klasse A zu halten, weil der Verbraucher Logik sollte in einer Klasse B behandelt werden, der Gegenstand keinen Bezug hat von A. I LinkedBlockingQueue den richtige Datentyp für die Warteschlange? Oder gibt es eine bessere Auswahl für das?
Lösung
Wenn Sie eine beschränkte Warteschlange verwenden, können Sie auch eine ArrayBlockingQueue
.
Auch von der LinkedBlockingQueue
Javadoc:
Verknüpfte Warteschlangen haben in der Regel höher Durchsatz als Array-basierten-Warteschlangen, aber weniger vorhersagbare Leistung in den meisten gleichzeitige Anwendungen.
Andere Tipps
Wenn die Erzeuger und Verbraucher läuft in zwei verschiedenen Threads, dann Ja , ein LinkedBlockingQueue<E>
wäre eine gute Wahl sein.