English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Notre tâche consiste à créer un processus enfant et à utiliserfork()
La fonction en Python affiche l'ID de processus du processus parent et du processus enfant.
lors de son utilisationfork()
elle créera sa propre copie, c'est une aspect très important de LINUX et UNIX.fork()
Il est principalement applicable dans un environnement multithreadé, ce qui signifie que les threads enfants créés à partir du thread parent exécuteront cette tâche en répétition. Lorsqu'une erreur se produit, cette méthode retournera une valeur négative, pour les processus enfants, cette méthode retournera 0, sinon, elle retournera une valeur positive, ce qui signifie que nous sommes dans le processus parent.
lefork()
Le module peut être appelé à partir du module OS ou du module terminal virtuel PTY. Par conséquent, nous devrions importer os ou pty pour cela.
pourfork()
Utilisé pour créer un processus avec ou sans arguments et retourner l'ID de processus. Utiliséfork()
Raison principale pour créer un nouveau processus (devenir le processus enfant de l'appelant). Lorsque le processus enfant est créé, les deux processus exécutent l'instruction suivante.
fork()
Notre valeur de retour peut nous faire comprendre que lorsque nous retournons 0, nous sommes dans le processus enfant, si nous retournons une valeur positive, cela signifie que nous sommes dans le processus parent, et si nous retournons une valeur négative, cela signifie que quelque chose s'est mal passé.
import os def parentchild(): n = os.fork() if n > 0: print("Processus parent : ", os.getpid()) else: print("Processus enfant : ", os.getpid()) # Code du pilote parentchild()
Résultat de la sortie
Processus parent : 8023 Processus enfant : 8024 $
Le module utilitaire de terminal virtuel pty est défini pour traiter le concept de terminal virtuel. En utilisant cette fonction, nous pouvons démarrer un autre processus ou lire ou écrire à partir du terminal de contrôle.
Ce module est très orienté plateforme. Nous devrions utiliser le système UNIX pour exécuter ces opérations.
import pty, os def process_parent_child(): (process_id, fd) = pty.fork() print("L'ID de processus pour le processus actuel est : ", + str(os.getpid())) print("L'ID de processus pour le processus enfant est : ", + str(process_id)) process_parent_child()
Résultat de la sortie
L'ID de processus pour le processus actuel est : 12508 L'ID de processus pour le processus enfant est : 12509