Für die Verwendung von Active-Objekt oder nicht?

Active object design pattern wie ich Sie verstehe, ist binden ein (private/dedizierte) thread Lebens Zeit mit einem Objekt und machen es Arbeit, die auf unabhängigen Daten. Aus einigen der Unterlagen, die ich Lesen , die Entwicklung dieser Art von Paradigma wurde aufgrund von zwei Gründen , Erstens , die Verwaltung von raw-threads wäre Schmerz und die zweite mehr threads, die streitenden für die freigegebene Ressource nicht skaliert gut mit mutex und Schlösser. ich Stimme zwar mit dem ersten Grund , den ich nicht ganz begreifen die zweite . Macht ein Objekt aktiv, nur macht das Objekt unabhängig, aber die Probleme wie Konflikte für die lock/mutex ist noch da (als wir noch gemeinsame Warteschlange/Puffer), wird das Objekt nur delegiert die Verantwortung teilen auf die message-queue. Der einzige Vorteil, den dieses design-pattern wie ich das sehe ist der Fall, wo ich musste lange asynch Aufgabe auf die shared-object - (nun, ich bin nur auf der Durchreise Nachricht an eine shared queue , die threads nicht mehr haben, um block für lange auf mutex/sperren, aber Sie immer noch blocka und kämpfen für die Veröffentlichung von Nachrichten/Aufgabe). Andere als in diesem Fall könnte jemand sagen, mehr Szenarien, in denen diese Art von design pattern haben andere Vorteile.

Die zweite Frage die ich habe ist (ich habe gerade angefangen zu Graben um design patterns) , was ist der konzeptionelle Unterschied zwischen aktivem Objekt , reactor und proactor-design-Muster . Wie entscheiden Sie, in welche design-pattern ist effizienter und passt Ihre Anforderungen. Es wäre wirklich schön, wenn jemand nachweisen kann, bestimmte Beispiele, die zeigen, wie die drei design-Muster zu Verhalten und denen man einen Vorteil/Nachteil in verschiedenen Szenarien.

Ich bin irgendwie verwirrt da ich aktive Objekt (die freigegebenen thread-safe-buffer) und boost::asio(Proactor) beide ähnliche Art von async-Zeug , würde ich gerne wissen, wenn jemand hat mehr Erkenntnisse über die Anwendbarkeit der verschiedenen Muster bei der Annäherung an ein problem.

InformationsquelleAutor user179156 | 2012-04-19
Schreibe einen Kommentar