Les ios écrits dans cet article sont tous des systèmes Java Bio (c'est-à-dire des io publiés par jdk1.0), qui était le seul choix avant JDK1.4, mais le programme est intuitif, simple et facile à comprendre.
BIO : Synchronisation et blocage, le mode de mise en œuvre du serveur est une connexion et un thread, c'est-à-dire que lorsque le client a une demande de connexion, le Le serveur doit démarrer un thread Pour le traitement, si cette connexion ne fait rien, cela entraînera une surcharge inutile du thread, qui peut bien sûr être améliorée via le mécanisme du pool de threads. La méthode BIO convient aux architectures avec un nombre de connexions relativement petit et fixe. Cette méthode a des exigences relativement élevées en ressources serveur et la concurrence est limitée aux applications.
BIO
Blocage synchrone des E/S. Je crois que tous ceux qui ont étudié la programmation réseau du système d'exploitation ou la programmation réseau dans n'importe quel langage le connaissent. Dans la boucle while, le serveur appellera. La méthode d'acceptation attend de recevoir une demande de connexion du client. Une fois qu'une demande de connexion est reçue, une socket de communication peut être établie pour effectuer des opérations de lecture et d'écriture sur cette socket de communication. À ce stade, elle ne peut plus recevoir de demandes de connexion des autres. clients et ne peut qu'attendre la même demande. L'exécution de l'opération pour le client actuellement connecté est terminée.
Si BIO veut pouvoir gérer plusieurs requêtes clients en même temps, il doit utiliser le multi-threading, c'est-à-dire que chacun accepte les blocs et attend une requête du client. Une fois une demande de connexion reçue, une communication. socket est établi et un nouveau thread est ouvert pour le traitement. La demande de lecture et d'écriture de données de ce socket, puis continue immédiatement à accepter et à attendre les autres demandes de connexion client, c'est-à-dire qu'un thread est créé pour chaque demande de connexion client. traité séparément. Le diagramme schématique approximatif ressemble à ceci :
Cependant, à l'heure actuelle, le serveur a des capacités de concurrence élevées, c'est-à-dire qu'il peut gérer plusieurs requêtes client en même temps. du temps, mais cela pose un problème. À mesure que le nombre de threads ouverts augmente, cela consommera des ressources mémoire excessives pouvant entraîner un ralentissement ou même un crash du serveur.
La méthode IO convient aux scénarios dans lesquels le nombre de connexions est relativement faible et fixe. Cette méthode a des exigences relativement élevées en ressources du serveur et la concurrence est limitée aux applications.
Recommandations d'apprentissage associées : Tutoriel de base Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!