Texte :: Editeur :: Easy :: Comm

Texte :: Editeur :: Easy :: Comm est un mécanisme de communication de thread de "Text :: Editeur :: Easy" Module.
Télécharger maintenant

Texte :: Editeur :: Easy :: Comm Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • GPL
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Sebastien Grommier
  • Site Internet de l'éditeur:
  • http://search.cpan.org/~grommier/Text-Editor-Easy-0.1/lib/Text/Editor/Easy/Comm.pm

Texte :: Editeur :: Easy :: Comm Mots clés


Texte :: Editeur :: Easy :: Comm La description

Texte :: Editeur :: Easy :: Comm est un mécanisme de communication de fil de thread de "Text :: Editor :: Easy" Module. Texte :: Editeur :: Easy :: Easy :: Communication de threads Mécanisme de "Text :: Solidaire :: Easy" Module.synopssiTile sont 2 (ou 3 si nous incluons le module "Text :: Editeur :: easy :: File_Manager" ) Modules complexes dans le "Text :: Editeur :: Easy" Arbre. Ce module et le "Text :: Editor :: Easy :: Résumé" qui traite des graphiques de manière encapsulée. Ce module tente de faire de la manipulation de fil évidente avec "Text :: Editeur :: Easy" Objets. Peut-être que ce module pourrait être admisé pour être utilisé avec d'autres objets pour faciliter la création et l'utilisation de fil. Ce n'est pas mon objectif: mon objectif est d'écrire un générateur d'applications pouvant être modifiée de manière dynamique (l'éditeur est la première partie de celle-ci). Il y a 2 classes principales de threads: serveur et client. Un thread de client est, par exemple, votre programme qui fonctionne de manière séquentielle et, de temps à autre, posez un fil de serveur pour un service. Un thread de serveur est un fil d'attente qui gère un service particulier. De temps en temps, cela s'appelle par un client (qui peut être un vrai thread de client ou un autre thread de serveur: le thread du serveur appelant peut être vu ici en tant que client pour notre serveur répondant), répond au client, puis attend. Bien sûr, si le serveur est saturé d'appels, cela n'attendra pas et exécutera tous les appels dans l'ordre de l'ordre. Ainsi, les clients (serveurs réels ou autres) devraient donc attendre la réponse du serveur ... mais pas toujours. Voici des appels asynchrones: dans un appel asynchrone, le client demande quelque chose au serveur (obtient, s'il le souhaite, une identification de l'appel, le «call_id») et peut continuer sans attendre la réponse. Mais les appels asynchrones ne sont pas toujours possibles. Souvent, vous devez faire des choses dans un certain ordre et être sûr qu'ils ont été faits avant de continuer. Donc, la plupart des appels vers les threads de serveur (par client) seront synchrones et bloquants .Now que nous avons vu les 2 classes de threads parlons plus sur les threads de serveur. Il existe principalement 3 types de threads de serveur: appartenant à une instance (appelons le fil appartenant à la propriété), partagée par toutes les instances avec des données distinctes pour toutes les instances (appelons le fil multiplexé), partagé avec toutes les instances sans données distinctes ( Appelons le fil de classe informatique). Tous ces types de threads n'ont pas été inventés pour la beauté théorique, mais simplement parce que j'en avais besoin. Le thread appartenant est le thread "File_Manager": chaque "Text :: Editeur :: easy" a une instance privée. Le fil multiplexé est le fil graphique (numéro 0): TK n'est pas multi-fileté. Je devais donc mettre des données privées dans un seul fil. Tous les autres threads que j'utilise sont des threades de classe: le modèle de thread, numéro 1, qui n'est utilisé que pour créer de nouveaux threads, le thread de thread "Data" 2, qui partage des données commun telles que "call_id" et des réponses asynchrones ... Le système de fil me permet de créer tous les types de threads définis précédemment (appartenant, multiplexés et de classe), mais cela me permet plus. Premièrement, il n'y a pas de limite réelle entre les 3 types de threads (je peux avoir un fil avec une personnalité multiplexée et de classe ... ou toute autre combinaison). Deuxièmement, je suis capable de définir des méthodes dynamiques et d'avoir accès au code de toutes les méthodes pour permettre des modifications dynamiques. La démo8 de la version 0.01 m'a donné des idées sur ce que je devais augmenter ma productivité dans le développement de mon éditeur. La méthode "create_new_server" peut être appelée avec une instance, ou avec une classe: My $ TID = $ Editeur-> create_new_server ({ ...}); ou My $ TID = TEXT = :: Editeur :: easy-> create_new_server ({...}); pour un type appartenant ou multiplexé, utilisez l'appel d'instance. Pour le type de classe, utilisez l'appel de la classe. "Create_New_server" utilise une référence de hachage pour les paramètres et renvoie le "TID" ("Identification de thread" dans le mécanisme de fil de fil interprété), qui est un entier. Cette interface peut être changée: je viens de voir les capacités réelles. Bien sûr, plus j'utilise cette interface pour créer tous mes filets, et plus je serai réticent à changer l'interface. Exigences: · Perl


Texte :: Editeur :: Easy :: Comm Logiciels associés