File d'attente multiprocesseur Python

File d'attente multiprocesseur Python

L'élément le plus crucial de la structure de données est la file d'attente. La file d'attente de structure de données «First In, First Out» qui est la base du multiprocessement Python est comparable. Des files d'attente sont fournies à la fonction de processus pour permettre au processus de collecter les données. Le premier élément de données à éliminer de la file d'attente est le premier élément à saisir. Nous utilisons la méthode «put ()» de la file d'attente pour ajouter les données à la file d'attente et à sa méthode «get ()» pour récupérer les données de la file d'attente.

Exemple 1: Utilisation de la méthode de file d'attente () pour créer une file d'attente multiprocesseur dans Python

Dans cet exemple, nous créons une file d'attente multiprocesseur dans Python en utilisant la méthode "file d'attente". Le multiprocessement fait référence à l'utilisation d'un ou plusieurs CPU dans un système pour effectuer deux processus ou plus simultanément. Le multiprocessement, un module construit en python, facilite la commutation entre les processus. Nous devons être familiers avec la propriété du processus avant de travailler avec le multiprocesseur. Nous sommes conscients que la file d'attente est un composant crucial du modèle de données. La file d'attente de données standard, qui est construite sur l'idée du «premier entrée en dehors», et le multiprocessement Python sont des homologues exacts. En général, la file d'attente stocke l'objet Python et est crucial pour le transfert de données entre les tâches.

L'outil «Spyder» est utilisé pour implémenter le script Python présent, alors commençons simplement. Nous devons d'abord importer le module de multiprocessement car nous exécutons le script multiprocesseur Python. Nous l'avons fait en important le module de multiprocessement comme «M». Les utiliser.Technique de file d'attente () », nous invoquons la méthode multiprocesseur« queue () ». Ici, nous créons une variable appelée «file d'attente» et y faisons la méthode multiprocesseur «queue ()». Comme nous savons que la file d'attente stocke les éléments dans une commande «premier-in, première», l'élément que nous ajoutons d'abord est supprimé en premier. Après avoir lancé la file d'attente multiprocesseur, nous appelons ensuite la méthode «print ()», passant l'instruction «Il y a une file d'attente multiprocessement» comme argument pour l'afficher à l'écran. Ensuite, parce que nous stockons la file d'attente construite dans cette variable, nous imprimons la file d'attente en passant la variable «file d'attente» dans la parenthèse de la méthode «print ()».


L'image suivante montre que la file d'attente de multiprocessement Python est maintenant construite. L'énoncé d'impression est affiché en premier. Une fois cette file d'attente multiprocessement construite dans l'adresse de mémoire désignée, elle peut être utilisée pour transférer les données distinctes entre deux ou plusieurs processus en cours d'exécution.

Exemple 2: Utilisation de la méthode «QSize ()» pour déterminer la taille de la file d'attente multiprocesseur à Python

Nous déterminons la taille de la file d'attente multiprocesseur dans ce cas. Pour calculer la taille de la file d'attente multiprocesseur, nous utilisons la méthode «QSize ()». La fonction «qsize ()» renvoie la taille réelle de la file d'attente multiprocesseur Python. En d'autres termes, cette méthode fournit le nombre total d'éléments dans une file d'attente.

Commençons par importer le module de multiprocessement Python comme «M» avant d'exécuter le code. Ensuite, en utilisant le «M.Commande () », nous invoquons la fonction multiprocesseur« queue () »et mettons le résultat dans la variable« file d'attente ». Ensuite, en utilisant la méthode «put ()», nous ajoutons les éléments à la file d'attente dans la ligne suivante. Cette méthode est utilisée pour ajouter les données à une file d'attente. Par conséquent, nous appelons la méthode «file d'attente» avec la méthode «put ()» et fournissons les numéros entiers comme élément dans sa parenthèse. Les nombres que nous ajoutons sont «1», «2», «3», «4», «5», «6» et «7» en utilisant les fonctions «put ()».

De plus, en utilisant la «file d'attente» pour obtenir la taille de la file d'attente multiprocesseur, nous appelons le «QSize ()» avec la file d'attente multiprocesseur. Ensuite, dans la variable «Résultat» nouvellement formée, nous économisons le résultat de la méthode «QSize ()». Après cela, nous appelons la méthode «print ()» et passons l'instruction «La taille de la file d'attente multiprocessement est» comme son paramètre. Ensuite, nous appelons la variable «Résultat» dans la fonction «print ()» car la taille est enregistrée dans cette variable.


L'image de sortie a la taille affichée. Comme nous utilisons la fonction «put ()» pour ajouter sept éléments à la file d'attente multiprocesseur et à la fonction «QSize ()» pour déterminer la taille, la taille de la file d'attente multiprocesse. L'énoncé d'entrée «La taille de la file d'attente multiprocesseur» est affichée avant la taille.

Exemple 3: Utilisation de la méthode «put ()» et «get ()» dans la file d'attente multiprocesseur Python

Les méthodes de file d'attente «put ()» et «get ()» de la file d'attente multiprocesseur Python sont utilisées dans cet exemple. Nous développons deux fonctions définies par l'utilisateur dans cet exemple. Dans cet exemple, nous définissons une fonction pour créer un processus qui produit des entiers aléatoires «5». Nous utilisons également la méthode «put ()» pour les ajouter à une file d'attente. La méthode «put ()» est utilisée pour placer les éléments dans la file d'attente. Ensuite, pour récupérer les nombres de la file d'attente et renvoyer leurs valeurs, nous écrivons une autre fonction et l'appelons pendant la procédure. Nous utilisons la fonction «get ()» pour récupérer les nombres de la file d'attente car cette méthode est utilisée pour récupérer les données de la file d'attente que nous insérons en utilisant la méthode «put ()».

Commençons par implémenter le code maintenant. Tout d'abord, nous importons les quatre bibliothèques qui composent ce script. Nous importons d'abord «sommeil» du module temporel pour retarder l'exécution pendant un certain temps mesuré en secondes, suivi de «aléatoire» du module aléatoire qui est utilisé pour générer des nombres aléatoires, puis «traiter» du multiprocessement car ce code crée un processus , et enfin, la «file d'attente» du multiprocessement. En construisant initialement une instance de classe, la file d'attente peut être utilisée. Par défaut, cela établit une file d'attente infinie ou une file d'attente sans taille maximale. En définissant l'option de taille maximale sur un nombre supérieur à zéro, il est possible de faire une création avec une restriction de taille.


Nous définissons une fonction. Ensuite, puisque cette fonction est définie par l'utilisateur, nous lui donnons le nom «Function1» et passons le terme «file d'attente» comme argument. Suivant cela, nous invoquons la fonction «print ()», en le faisant passer le «Builder: Running», «Flush» et l'objet «True» . La fonction d'impression de Python a une option unique appelée Flush qui permet à l'utilisateur de choisir de tamponner cette sortie ou non. L'étape suivante consiste à générer la tâche. Pour ce faire, nous utilisons «pour» et créons la variable «M» et définissons la plage sur «5». Ensuite, dans la ligne suivante, utilisez «Random ()» et stockez le résultat dans la variable que nous avons faite qui est «Valeur."Cela indique que la fonction termine désormais ses cinq itérations, chaque itération créant un entier aléatoire de 0 à 5.

Ensuite, à l'étape suivante, nous appelons la fonction «sleep ()» et passons l'argument «valeur» pour retarder la partie pendant un certain nombre de secondes. Ensuite, nous appelons la méthode «file d'attente» avec la méthode «put ()» pour ajouter essentiellement la valeur à la file d'attente. L'utilisateur est alors informé qu'il n'y a plus de travail à faire en invoquant la «file d'attente.put () ”Méthode une fois de plus et passant la valeur« Aucun ». Ensuite, nous exécutons la méthode "print ()", passons la déclaration "Builder: Ready" avec "Flush" et la définissez sur "True".


Nous définissons maintenant une deuxième fonction, «Function2», et attribuons le mot clé «file d'attente» comme son argument. Ensuite, nous appelons la fonction «print ()» tout en passant le rapport indique «Utilisateur: Running» et «Flush» qui est défini sur «True». Nous commençons le fonctionnement de «function2» en utilisant la vraie condition While pour retirer les données de la file d'attente et la mettre dans la variable «élément» nouvellement créée. Ensuite, nous utilisons la condition «IF», ​​«L'article n'est pas», pour interrompre la boucle si la condition est vraie. Si aucun élément n'est disponible, il s'arrête et demande à l'utilisateur pour un. La tâche arrête la boucle et se termine dans ce cas si l'élément obtenu à partir de la valeur est nul. Ensuite, dans l'étape suivante, nous appelons la fonction «print ()» et fournissons le rapport «User: Ready» et les paramètres «Flush = True».


Ensuite, nous entrons le processus principal en utilisant le «if-name = main_». Nous créons une file d'attente en appelant la méthode «file d'attente ()» et en la stockant dans la variable «file d'attente». Ensuite, nous créons un processus en appelant la fonction utilisateur «function2». Pour cela, nous appelons la classe «processus». À l'intérieur, nous passons le «Target = function2» pour appeler la fonction dans le processus, passer l'argument «file d'attente» et le stocker dans la variable «user_process». Le processus commence ensuite par appeler la méthode «start ()» avec la variable «processus utilisateur». Nous répétons ensuite la même procédure pour appeler la «fonction1» dans le processus et la mettre dans la variable «Processus de générateur». Ensuite, nous appelons les processus avec la méthode «join ()» pour attendre l'exécution.


Maintenant qu'il est présenté, vous pouvez voir les instructions des deux fonctions dans la sortie. Il affiche les éléments que nous avons ajoutés en utilisant les méthodes «put ()» et «get ()» en utilisant les méthodes «get ()», respectivement.

Conclusion

Nous avons appris la file d'attente de multiprocessement Python dans cet article. Nous avons utilisé les illustrations données. Au début, nous avons décrit comment créer une file d'attente dans le multiprocessement Python à l'aide de la fonction (). Ensuite, nous avons utilisé la méthode «qsize ()» pour déterminer la file d'attente . Nous avons également utilisé les méthodes Put () et Get () de la file d'attente. La classe de sommeil du module temporel et la classe aléatoire du module aléatoire ont toutes deux été discutées dans le dernier exemple.