Comment exécuter un script esclave de manière asynchrone en Python à l'aide d'un appel de processus non bloquant ?

DDD
Libérer: 2024-10-19 13:47:29
original
632 Les gens l'ont consulté

How to Run a Slave Script Asynchronously in Python using Non-Blocking Process Invocation?

subprocess.call non bloquant

Dans ce scénario, vous avez l'intention d'invoquer un script esclave (slave.py) à partir d'un script parent (main.py) de manière asynchrone . Plus précisément, vous souhaitez que slave.py s'exécute indépendamment de main.py après avoir reçu des arguments de main.py lors de son exécution initiale.

Pour obtenir un comportement non bloquant, vous devez utiliser subprocess.Popen au lieu de subprocess.call . La principale différence est que subprocess.call attend la fin de la commande avant de continuer, contrairement à subprocess.Popen.

Voici un exemple utilisant subprocess.Popen :

import subprocess

# Pass the arguments from main.py to slave.py
arguments = ['python', 'slave.py'] + sys.argv[1:]

# Launch slave.py as a non-blocking process
process = subprocess.Popen(arguments)
Copier après la connexion

Maintenant, main .py peut continuer son exécution pendant que slave.py s'exécute indépendamment.

Remarques supplémentaires :

  • N'utilisez pas de liste pour transmettre les arguments si vous' Vous utilisez shell=True.
  • Vous pouvez également exploiter asyncio pour le parallélisme basé sur la coroutine. Voir l'exemple fourni dans la réponse originale pour plus de détails.

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
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
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!