Explication du «motif du réacteur»

La seule explication du modèle de réacteur que je pourrais trouver est dans wikipedia , et c’est un peu trop abstrait (à mon humble avis). Pouvez-vous décrire ce modèle de manière plus concrète? Idéalement avec des extraits de code ou des diagrammes de classes de haut niveau?

Vous voudrez peut-être consulter le document original le décrivant http://www.cs.wustl.edu/~schmidt/PDF/reactor-siemens.pdf

Le modèle de conception du réacteur gère les demandes de service livrées simultanément à une application par un ou plusieurs clients. Chaque service d’une application peut être composé de méthodes serveur et est représenté par un gestionnaire d’événements distinct chargé d’envoyer les demandes spécifiques aux services. La répartition des gestionnaires d’événements est effectuée par un répartiteur d’initiation, qui gère les gestionnaires d’événements enregistrés. Le démultiplexage des demandes de service est effectué par un démultiplexeur d’événements synchrones.

Un réacteur permet de traiter efficacement plusieurs tâches qui bloquent (par exemple en raison des entrées-sorties) en utilisant un seul fil. Le réacteur gère un pool de gestionnaires et exécute une boucle d’événements. Lorsqu’il est appelé pour exécuter une tâche, il le lie à un nouveau gestionnaire ou à un gestionnaire vacant, le rendant actif. La boucle d’événements (1) trouve que tous les gestionnaires actifs et débloqués (ou la délèguent à une implémentation de répartiteur) (2) exécutent séquentiellement chacun de ces gestionnaires jusqu’à ce qu’ils se terminent ou atteignent un sharepoint blocage. Les gestionnaires terminés deviennent inactifs et inutilisés pour être réutilisés, alors que les gestionnaires actifs bloqués produisent, permettant à la boucle d’événement de continuer. (3) Répète à partir de l’étape (1)