Qu'est-ce qu'un tuyau à Python?
Le processus qui transmet ces informations écrit au tuyau, tandis que le processus qui reçoit ces informations se lit du tuyau. Tout comme les autres langages de programmation, Python prend également en charge la mise en œuvre des tuyaux.
Pourquoi devrais-je utiliser un tuyau en python?
Nous savons tous que la communication inter-processus est un concept de programmation très important. Depuis l'introduction du concept de traitement parallèle, la fonctionnalité et la puissance des ordinateurs se sont élargies dans une très large mesure. Ce concept nous a permis d'exécuter plusieurs processus à la fois qui peuvent fonctionner de manière indépendante. Cependant, nous voulons parfois qu'un processus transmette certaines informations à une autre qui nécessite un traitement ultérieur. C'est là que les tuyaux en python sont utiles.
Un tuyau en python peut facilement être utilisé pour transmettre des informations d'un bout à un autre. Cela permet à deux processus d'échanger des données les uns avec les autres. La seule chose qui doit être prise en charge lors de la mise en œuvre de tuyaux à Python ou, d'ailleurs, dans tout autre langage de programmation est qu'une fois qu'un processus écrit au tuyau, le descripteur de fichier de lecture doit être bloqué. De même, lorsqu'un processus lit à partir du tuyau, le descripteur du fichier d'écriture doit être bloqué. Ceci est fait pour garantir l'intégrité des données et que les données sont synchronisées entre les processus de lecture et d'écriture.
Pour éclairer davantage la mise en œuvre des tuyaux dans Python, vous devriez passer par l'exemple suivant que nous avons formulé pour que vous appreniez efficacement l'utilisation des tuyaux en Python.
Remarque: vous pouvez utiliser l'ide Spyder pour implémenter un programme dans Python en utilisant Windows 10 ou toute distribution de Linux; Cependant, le «OS.La fonction fork () ”utilisée dans l'exemple suivant n'est prise en charge que par Linux. Par conséquent, vous ne pourrez pas implémenter le code suivant dans Windows 10.
Exemple d'utilisation d'un tuyau en python:
Pour dépeindre l'utilisation d'un tuyau à Python, nous voulions implémenter un code capable d'activer la communication entre un processus parent et un processus d'enfant en utilisant un tuyau. Pour faciliter une telle communication, vous devrez jeter un œil au code suivant:
Dans ce code Python pour l'implémentation des tuyaux, nous avons d'abord importé le module «OS» de Python, qui facilitera cette implémentation. Ensuite, nous avons créé un tuyau avec le «OS.Fonction Pipe () ”et l'ont attribuée aux deux descripteurs de fichiers« R »et« W »pour la lecture et l'écriture de données, respectivement. Après cela, nous voulions engendrer un processus d'enfant avec l'ID de processus, je.e., PID qui peut être fait avec l'aide du «OS.fonction fork () ”. Ensuite, nous avons une déclaration «IF» qui fonctionne sur le PID supérieur à «0» I.e., Si le PID est celui d'un processus parent, alors ce bloc «If» sera exécuté. Dans ce bloc «if», le processus parent bloque d'abord le descripteur de fichier «lecture», je.e., r, pour que le processus parent puisse facilement écrire au tuyau sans aucune interruption. Cela se fait en utilisant le «OS.Fonction de fermeture (R) ”.
Après cela, nous voulions informer l'utilisateur via la console que le processus parent écrit maintenant au tuyau pour lequel nous avons affiché un message à l'aide de la commande «Imprimer». Ensuite, nous avons une variable «texte» à laquelle nous avons attribué le texte que le processus parent veut écrire au tuyau.
Après cela, nous avons appelé le «OS.Fonction écrite () ”. Cette fonction accepte deux arguments, je.e., Le descripteur de fichier d'écriture et le texte à écrire sur le tuyau. Lorsque cette fonction sera appelée, le texte sera automatiquement écrit sur le tuyau. Après cela, nous voulions afficher le texte écrit sur le tuyau de notre console, ce que nous ferons avec l'aide de la fonction «Imprimer» en décodant la variable de texte.
Ensuite, il y a une déclaration «else» qui fonctionnera si le PID n'est pas supérieur à «0» I.e., Le PID est celui d'un processus enfant; Ce n'est qu'alors que ce bloc «else» sera exécuté. Dans ce bloc «else», le processus d'enfant bloque d'abord le descripteur de fichier «écriture», je.e., w, pour lire facilement le texte écrit sur le tuyau sans aucune modification. Cela se fait en utilisant le «OS.Fonction de fermeture (w) ”.
Après cela, nous voulions informer l'utilisateur via la console que le processus de l'enfant lit maintenant à partir du tuyau pour lequel nous avons affiché un message en utilisant la commande «Imprimer». Ensuite, nous avons attribué la valeur du descripteur de fichier de lecture ouvert «R» à notre descripteur de fichier de lecture initialement déclaré. Enfin, nous voulions afficher le texte lu du tuyau par notre processus d'enfant sur notre console en utilisant la fonction «Imprimer». Après avoir écrit ce code Python dans l'IDE Spyder, nous l'avons simplement enregistré puis l'avons exécuté.
Une fois ce code exécuté, sa sortie s'est avérée quelque peu montrée dans l'image ci-dessous:
Dans cette sortie, vous pouvez voir que le premier message qui est apparu sur la console était «le processus parent écrit:» Ce qui implique qu'actuellement, le descripteur de fichier de lecture est bloqué pendant que le processus parent écrit sur le tuyau. Le deuxième message qui est apparu sur la console était «SMS écrit: accueillez mon enfant!”Qui représente le texte écrit sur le tuyau par le processus parent. Ensuite, le troisième message qui a été affiché dans la sortie était «Le processus enfant se lit. Enfin, le quatrième message qui était affiché sur la console était «Lire le texte: bienvenue mon enfant!"Qui représente simplement le texte qui a été lu à partir du tuyau par le processus de l'enfant.
De cette façon, vous pouvez travailler avec des tuyaux en python et créer des exemples encore plus complexes dans lesquels vous pouvez représenter une communication à part entière entre les processus parent et enfant.
Conclusion:
Nous avons parlé brièvement des tuyaux à Python au début de cet article. Ensuite, nous sommes allés un peu plus loin en expliquant comment ils fonctionnent et pourquoi nous devrions les utiliser en premier lieu. Après cela, nous avons expliqué comment les tuyaux pouvaient être mis en œuvre dans Python à l'aide d'un exemple utile dans lequel un processus transmet certaines informations à une autre. Une fois que vous avez suivi cet exemple, vous comprendrez rapidement la façon dont les tuyaux sont implémentés dans Python, puis vous pourrez mettre en œuvre des programmes plus complexes dans lesquels deux processus communiquent entre eux.