Comment puis-je facilement implémenter la communication interprocessus en Python ?

Susan Sarandon
Libérer: 2024-10-30 21:04:30
original
696 Les gens l'ont consulté

How Can I Easily Implement Interprocess Communication in Python?

Communication interprocessus en Python

Lorsque vous travaillez avec plusieurs environnements d'exécution Python, il devient nécessaire d'établir une communication interprocessus efficace. Diverses méthodes existent, notamment :

  • Named Pipes (os.mkfifo) : Bien qu'il s'agisse d'une option de base, elle peut sembler non raffinée et sujette à des erreurs.
  • Services DBus :Convient aux environnements de bureau, mais trop complexe pour les systèmes sans tête.
  • Sockets : De bas niveau et manuel intensif.

Une solution complète

Pour répondre à vos besoins spécifiques, pensez à la bibliothèque multitraitement. Il fournit des écouteurs et des clients qui gèrent de manière transparente la communication par socket et permettent la transmission d'objets Python arbitraires.

Implémentation du serveur

Le serveur peut être configuré pour écouter les messages entrants :

<code class="python">from multiprocessing.connection import Listener

address = ('localhost', 6000)
listener = Listener(address, authkey=b'secret password')
conn = listener.accept()
print('connection accepted from', listener.last_accepted)
while True:
    msg = conn.recv()
    # Process the received message here
    if msg == 'close':
        conn.close()
        break
listener.close()</code>
Copier après la connexion

Implémentation du client

Le client peut initier la communication et envoyer des commandes sous forme d'objets Python :

<code class="python">from multiprocessing.connection import Client

address = ('localhost', 6000)
conn = Client(address, authkey=b'secret password')
conn.send('close')
# Send arbitrary objects:
# conn.send(['a', 2.5, None, int, sum])
conn.close()</code>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!