2 Stimmen

Einige Fragen zur Implementierung von Rohren und Filtern

Ich werde eine Komponente entwickeln, die ExtractInfoFromUrl . Diese Komponente hat eine Methode namens addUrl(url) die URLs akzeptiert und die angegebene URL öffnet und Informationen aus der entsprechenden Seite extrahiert und ein Ereignis auslöst, wenn sie fertig ist. Intern ist die Komponente aus Pipes und Filtern aufgebaut.

Ich habe 3 Fragen:

  1. Ich würde gerne wissen, was besser wäre, wenn jeder Filter haben eine Thread (d.h. in Java: erben von Thread ) oder haben die Pipe s haben Threads ?

  2. Es ist offensichtlich, dass ich meine Filter oder meine Rohre mit Gewinde haben muss. Aber muss ich nicht auch einen Thread für meine Komponente selbst verwenden? Ich brauche einen Thread, der die anderen steuert, und ich glaube, der Thread des Hauptprogramms ist für diese Aufgabe nicht geeignet, aber ich bin mir nicht ganz sicher, warum.

  3. Gibt es eine andere Art von Java-Implementierung für PipedReaders/Writers, die mir erlaubt, andere Arten von Daten anstelle von char/int zu behandeln? Das ist ein bisschen zu niedrig für mich, würde ich sagen. Wenn es etwas anderes gäbe, das z.B. Strings zulässt, wäre das vorzuziehen.

感謝

2voto

Hovercraft Full Of Eels Punkte 280443
  1. Zum einen ist es in der Regel vorzuziehen, Runnable zu implementieren, anstatt Thread zu erweitern, aber unabhängig davon glaube ich nicht, dass Sie Ihre Filter oder Pipes Thread erweitern oder Runnable implementieren wollen, sondern eher jede Pipe in einem neuen Thread verwenden wollen.

  2. Was meinen Sie mit "Komponente"? Meinen Sie eine visualisierte GUI-Komponente? Oder etwas anderes?

  3. Ich habe PipedWriters in PrintWriter eingewickelt

1voto

lijie Punkte 4711

Vom Konzept her stellen Filter die Berechnungen in einer Filter-and-Pipe-Architektur dar, so dass es meiner Meinung nach sinnvoller ist, die Threads mit den Filtern zu verknüpfen (wenn überhaupt Threads verwendet werden). Pipes sind der "Kommunikations"-Teil des Musters.

Auch hier gilt: Wenn die aus einer abgerufenen Seite extrahierten Informationen nicht von anderen Daten abhängen, macht die Verwendung von Threads für sie nur in einem Multiprozessor-Fall Sinn. Ich bin mir auch nicht sicher, warum es einen Master-Thread geben muss - vielleicht können Sie das näher erläutern.

Warum sollte man statt der Verwendung von Low-Level-Readern/Writern nicht Nachrichtenwarteschlangen in Betracht ziehen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X