File d'attente de multitraitement Python

File D Attente De Multitraitement 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 'premier entré, premier sorti' qui est à la base du multitraitement Python est comparable. Des files d'attente sont fournies à la fonction de processus pour permettre au processus de collecter les données. La première donnée à éliminer de la file d'attente est la première donnée à entrer. 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 Queue() pour créer une file d'attente de multitraitement en Python

Dans cet exemple, nous créons une file d'attente multitraitement en Python en utilisant la méthode 'queue()'. Le multitraitement fait référence à l'utilisation d'un ou plusieurs processeurs dans un système pour effectuer deux processus ou plus simultanément. Le multitraitement, un module construit en Python, facilite la commutation entre les processus. Nous devons être familiarisés avec la propriété process avant de travailler avec le multitraitement. Nous sommes conscients que la file d'attente est un élément crucial du modèle de données. La file d'attente de données standard, qui repose sur l'idée du 'premier entré, premier sorti', et le multitraitement Python sont des homologues exacts. En général, la file d'attente stocke l'objet Python et est essentielle 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 multitraitement car nous exécutons le script de multitraitement Python. Pour ce faire, nous avons importé le module de multitraitement en tant que 'm'. En utilisant la technique « m.queue() », nous invoquons la méthode de multitraitement « queue() ». Ici, nous créons une variable appelée 'queue' et y plaçons la méthode de multitraitement 'queue()'. Comme nous savons que la file d'attente stocke les éléments dans un ordre 'premier entré, premier sorti', l'élément que nous ajoutons en premier est supprimé en premier. Après avoir lancé la file d'attente de multitraitement, nous appelons ensuite la méthode 'print ()', en passant l'instruction 'Il y a une file d'attente de multitraitement' 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 'queue' entre parenthèses de la méthode 'print ()'.




L'image suivante montre que la file d'attente de multitraitement Python est maintenant construite. La déclaration d'impression s'affiche en premier. Une fois cette file d'attente de multitraitement construite dans l'adresse 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 de multitraitement en Python

Nous déterminons la taille de la file d'attente de multitraitement dans ce cas. Pour calculer la taille de la file d'attente de multitraitement, nous utilisons la méthode 'qsize()'. La fonction « qsize() » renvoie la taille réelle de la file d'attente de multitraitement 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 multitraitement Python en tant que 'm' avant d'exécuter le code. Ensuite, à l'aide de la commande 'm.queue()', nous invoquons la fonction de multitraitement 'queue()' et mettons le résultat dans la variable 'Queue'. 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 'Queue' avec la méthode 'put ()' et fournissons les nombres entiers comme élément entre parenthèses. Les nombres que nous additionnons sont '1', '2', '3', '4', '5', '6' et '7' en utilisant les fonctions 'put()'.



De plus, en utilisant 'Queue' pour obtenir la taille de la file d'attente de multitraitement, nous appelons le 'qsize ()' avec la file d'attente de multitraitement. Ensuite, dans la variable 'result' nouvellement formée, nous enregistrons 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 de multitraitement est' comme paramètre. Ensuite, nous appelons la variable « result » dans la fonction « print() » puisque 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 de multitraitement et la fonction 'qsize()' pour déterminer la taille, la taille de la file d'attente de multitraitement '7' est affichée. L'instruction d'entrée 'la taille de la file d'attente de multitraitement' s'affiche avant la taille.

Exemple 3 : Utilisation des méthodes 'Put()' et 'Get()' dans la file d'attente de multitraitement Python

Les méthodes de file d'attente 'put()' et 'get()' de la file d'attente de multitraitement 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 '5' nombres entiers aléatoires. 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 au cours de la procédure. Nous utilisons la fonction 'get ()' pour récupérer les nombres de la file d'attente puisque cette méthode est utilisée pour récupérer les données de la file d'attente que nous insérons à l'aide de la méthode 'put ()'.

Commençons à implémenter le code maintenant. Tout d'abord, nous importons les quatre bibliothèques qui composent ce script. Nous importons d'abord 'sleep' du module time pour retarder l'exécution pendant un certain temps mesuré en secondes, suivi de 'random' du module random qui est utilisé pour générer des nombres aléatoires, puis 'process' du multitraitement car ce code crée un processus , et enfin, la 'file d'attente' du multitraitement. 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 taille max 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 'fonction1' et lui passons le terme 'file d'attente' comme argument. Ensuite, nous invoquons la fonction 'print()', en lui transmettant les instructions '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 mettre ou non en mémoire tampon cette sortie. L'étape suivante consiste à générer la tâche. Pour ce faire, nous utilisons 'for', 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 créée, qui est 'value'. Cela indique que la fonction termine maintenant 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 'value' pour retarder la portion d'un certain nombre de secondes. Ensuite, nous appelons la '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 à nouveau la méthode 'queue.put()' et en passant la valeur 'None'. Ensuite, nous exécutons la méthode 'print ()', passons l'instruction 'builder: ready' avec 'flush' et la définissons sur 'True'.


Nous définissons maintenant une deuxième fonction, 'fonction2', et lui attribuons le mot-clé 'queue' comme argument. Ensuite, nous appelons la fonction 'print()' tout en transmettant les états de rapport 'User : Running' et 'flush' qui est défini sur 'True'. Nous commençons l'opération de 'fonction2' en utilisant la condition while true pour retirer les données de la file d'attente et les placer dans la variable 'item' nouvellement créée. Ensuite, nous utilisons la condition 'if', 'item is None', pour interrompre la boucle si la condition est vraie. Si aucun élément n'est disponible, il s'arrête et en demande un à l'utilisateur. La tâche arrête la boucle et se termine dans ce cas si la rubrique obtenue à partir de la valeur est nulle. Ensuite, dans l'étape suivante, nous appelons la fonction 'print()' et lui fournissons le rapport 'User: ready' et les paramètres 'flush=True'.


Ensuite, nous entrons dans le processus principal en utilisant le 'If-name = main_'. Nous créons une file d'attente en appelant la méthode 'queue()' et en la stockant dans la variable 'queue'. Ensuite, nous créons un processus en appelant la fonction utilisateur « function2 ». Pour cela, nous appelons la classe « processus ». À l'intérieur de celui-ci, nous passons la 'target = function2' pour appeler la fonction dans le processus, passons l'argument 'queue' et le stockons dans la variable 'User_process'. Le processus démarre alors en appelant la méthode 'start()' avec la variable 'User_ process'. Nous répétons ensuite la même procédure pour appeler la 'fonction1' dans le processus et la mettre dans la variable 'builder process'. 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 à l'aide des méthodes 'put ()' et 'get ()' en utilisant respectivement les méthodes 'get ()'.

Conclusion

Nous avons découvert la file d'attente de multitraitement Python dans cet article. Nous avons utilisé les illustrations fournies. Dans un premier temps, nous avons décrit comment créer une file d'attente dans le multitraitement Python à l'aide de la fonction queue(). 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 sommeil du module temporel et la classe aléatoire du module aléatoire ont toutes deux été abordées dans le dernier exemple.