当前位置:网站首页>Interaction simple des données entre les processus

Interaction simple des données entre les processus

2022-01-15 02:37:59 Les programmeurs ont évolué sans perte de cheveux!

Source:

from multiprocessing import Process, Queue  # ImporterProcessEtQueue
import os, time, random


def write(q):  # Définir les fonctions,RéceptionQueueParamètres d'instance pour
    for v in range(10):
        print('Put %s to Queue' % v)
        q.put(v)  # Ajouter des données àQueue
        time.sleep(1)


def read(q):  # Définir les fonctions,RéceptionQueueParamètres d'instance pour
    while True:
        if not q.empty():  # Jugement,SiQueue Si ce n'est pas vide, extraire les données .
            v = q.get(True)  # Enlevez - le.QueueDonnées dans, Retour à enregistrer .
            print('Get %s from Queue' % v)
            time.sleep(1)
        else:  # SiQueue Quitter sans données .
            print("Aucune donnée trouvée")
            continue
            #break


if __name__ == '__main__':
    q = Queue()  # InstanciationQueue Les parenthèses peuvent être remplies , Le numéro d'entrée indique le nombre d'unités de stockage . Fonctionnement bloqué . Il faut attendre qu'il y ait une place libre à l'intérieur , Pour mettre les données , Ou les données ne peuvent être extraites que lorsqu'elles sont à l'intérieur , Impossible de récupérer les données , Ou attendre que les données ne soient pas stockées .
    pw = Process(target=write, args=(q,))  #  Instancier le Sous - processus pw,Pour la mise en œuvrewriteFonctions, Notez que la fonction ici n'est pas entre parenthèses , Juste passer la référence ,Paramètre requisargs Les paramètres sont reçus en tuples .
    pr = Process(target=read, args=(q,))  #  Instancier le Sous - processus pr,Pour la mise en œuvrereadFonctions, Notez que la fonction ici n'est pas entre parenthèses , Juste passer la référence ,Paramètre requisargs Les paramètres sont reçus en tuples .
    pw.start()  # Début de la mise en œuvrepw.
    pr.start()  # Début de la mise en œuvrepr.
    pw.join()  # Attendez.pwFin
    pr.join()  # Attendez.prFin
    print('Over')  # Fin du processus principal

Produits

Put 0 to Queue
Get 0 from Queue
Put 1 to Queue
Aucune donnée trouvée
Get 1 from Queue
Put 2 to Queue
Aucune donnée trouvée
Aucune donnée trouvée
Get 2 from Queue
Put 3 to Queue
Aucune donnée trouvée
Get 3 from Queue
Put 4 to Queue
Aucune donnée trouvée
Get 4 from Queue
Put 5 to Queue
Aucune donnée trouvée
Get 5 from Queue
Put 6 to Queue
Get 6 from Queue
Put 7 to Queue
Aucune donnée trouvée
Aucune donnée trouvée
Aucune donnée trouvée
Get 7 from Queue
Put 8 to Queue
Aucune donnée trouvée
Aucune donnée trouvée
Get 8 from Queue
Put 9 to Queue
Aucune donnée trouvée
Get 9 from Queue
Aucune donnée trouvée
Aucune donnée trouvée
Aucune donnée trouvée
Aucune donnée trouvée
Aucune donnée trouvée
Aucune donnée trouvée

版权声明
本文为[Les programmeurs ont évolué sans perte de cheveux!]所创,转载请带上原文链接,感谢
https://chowdera.com/2022/01/202201080602068894.html

随机推荐