os.wait ( )
DESCRIPTION.
Met l'exécution d'un processus parent en pause tant que son processus enfant est vivant.
SYNTAXE.
TPL_Variable = os.wait ( )
TPL_Variable = ⇨ variable qui recevra le tuple à champs nommés [ optionnel ]
os.wait ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
REMARQUES.
La méthode os.wait ( ) n'est disponible que pour UNIX et la plupart des Linux. Son utilisation sous d'autres OS, tel que Windows de Microsoft, lèvera une exception.
L'appel de la méthode os.wait ( ) ne peut être passée que depuis un processus parent, c'est-à-dire qui a créé un processus enfant avec la méthode os.fork ( ). Si le processus parent comporte l'appel de la méthode os.wait ( ) il suspendra son exécution sur cette ligne, tant qu'il n'aura pas reçu la valeur de retour de fin, indiquant que son processus enfant est complété.
A la fin de son exécution, le processus enfant retourne, à son processus parent, un tuple ( ) ayant la forme ( identifiant , signal ), où identifiant est l'identifiant du processus enfant (PID) et signal est une valeur numérique de 16 bits dont l'octet de poids faible est le nombre correspondant au signal qui a tué le processus, et dont le l'octect de poids fort est le statut de sortie (si la signal vaut 0). Le bit de poids fort du l'octect de poids faible est mis à 1 si un (fichier système) core file a été produit.
Voir la méthode os.waitid ( ) qui offre plus de possibilités.
EXEMPLE.
import os
kenfant = os.fork ( )
if kenfant > 0 : # si le processus en cours n'a pas retourné 0 c'est le père qui été chargé dans le CPU
print ( "Le PARENT" , os.getpid ( ) , "est en cours ... " )
print ( "Je patiente, mon enfant exécute sa tache ..." )
print ( )
kretour = os.wait ( )
print ( "Mon enfant" , kretour [ 0 ] , "a fini ..." )
print ( "Le signal de sortie de mon enfant est" , kretour [ 1 ] )
print ( "Le PARENT" , os.getpid ( ) , ": Ce processus est terminé ... " )
else : # si le processus en cours a retourné 0 c'est le fils qui été chargé dans le CPU
print ( "L'ENFANT" , os.getpid ( ) , "travail ..." )
for kvaleur in range ( 6 ) : print ( "L'ENFANT" , os.getpid ( ) , ": C'est toujours les mêmes qui travaillent ..." )
print ( )
Une fois enregistré, ce script doit être lancé depuis un terminal Linux avec la commande :
python /chemin/monscrip.py (où /chemin/monscrip.py est le nom de votre script avec son chemin).
Pour une meilleur compatibilité, chemin et nom de doivent as comporter d'espace ou de caractères spéciaux.
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la LOGITHEQUE de MON PYTHON PAS A PAS
vous trouvez des suggestions de projets simples et classiques pour
ooo
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
ooo
la programmation récréative avec le langage PYTHON 3
avec un exemple de résolution à télécharger pour vous inspirer.