-1

Hallo Ich bin ein Neuling in Concurrent-Programmierung mit Java. von allen Beispielen, die ich bei der gleichzeitigen Programmierung sah, wann immer wir eine Aufgabenwarteschlange definieren, verwendeten die Leute verschiedene Implementierungen der Blockierungswarteschlange. warum nur blockingqueue? Was sind die Vor- und Nachteile? Warum keine anderen Datenstrukturen?Wir können nur eine blockierende Warteschlange oder andere Datenstrukturen für die Threadpool-Aufgabenwarteschlange verwenden?

+0

Weg zu weit - schlagen Sie vor, lesen Sie die ersten Kapitel eines Buches, z. Java Concurrency in der Praxis. – slim

+0

danke für die Antwort slim..yes ist es zu weit von einer Frage .. Ich wollte nur eine Idee bekommen, warum ist es so .. :) –

Antwort

1

Ok, ich kann nicht genau adressieren, warum nicht näher bezeichneter Code bestimmte Datenstrukturen verwendet und keine anderen. Aber blockierende Warteschlangen haben nette Eigenschaften. Das Halten nur einer festen Anzahl von Elementen und das Erzwingen von Erzeugern, die Elemente über dieses Limit einfügen würden, ist tatsächlich ein Merkmal.

Durch die Begrenzung der Warteschlangengröße wird die Anwendung vor einem fehlerhaften Producer geschützt, der ansonsten die Warteschlange mit Einträgen füllen könnte, bis die Anwendung nicht mehr über genügend Speicher verfügt. Offensichtlich ist es schneller, eine Aufgabe in die Aufgabe einzufügen, wenn sie ausgeführt wird. Ein Ausführender ist gefährdet, mit Arbeit bombardiert zu werden.

Wenn der Hersteller gewartet wird, wird auch ein Gegendruck auf das System angewendet. Auf diese Weise lässt die Warteschlange den Produzenten wissen, dass er zurückfällt und keine weitere Arbeit akzeptiert. Es ist besser für den Produzenten zu warten, als dafür, dass er die Warteschlange weiter hämmert; Gegendruck lässt das System elegant degradieren.

So haben Sie eine Datenstruktur, die leicht zu verstehen ist, hat praktische Vorteile für die Erstellung von Anwendungen und scheint wie eine natürliche Passform für eine Aufgabenwarteschlange. Natürlich werden die Leute es benutzen.

+0

danke für die Antwort Nathan. Ich habe einen Überblick oder eine Idee, warum ist es so ... :) –

Verwandte Themen