English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Creazione di un processo figlio in Python utilizzando fork()

Il nostro compito è creare un processo figlio e utilizzarefork()La funzione in Python mostra l'ID del processo padre e del processo figlio.

quando viene utilizzatofork()creerà la sua copia, questo è un aspetto molto importante di LINUX e UNIX.fork()È principalmente adatto per l'ambiente multithreading, il che significa che i thread figli creati dal thread padre eseguiranno la stessa attività. Quando si verifica un errore, questo metodo restituirà un valore negativo, per i processi figli il metodo restituirà 0, altrimenti restituirà un valore positivo, il che significa che ci troviamo nel processo padre.

ilfork()Il modulo può essere chiamato dal modulo OS o dal modulo di terminale virtuale PTY. Pertanto, dovremmo esportare os o pty.

perfork()Utilizzato per creare un processo, senza parametri e che restituisce l'ID del processo. Utilizzatofork()La ragione principale per creare un nuovo processo (diventare il processo figlio del chiamante) è che entrambi i processi eseguiranno l'istruzione successiva quando viene creato un nuovo processo figlio.

fork()Il valore di ritorno può essere utilizzato per determinare se siamo nel processo figlio (valore di ritorno 0) o nel processo padre (valore di ritorno positivo) o se si è verificato un errore (valore di ritorno negativo).

Codice di esempio

import os
   def parentchild():
      n = os.fork()
   if n > 0:
      print("Processo padre: ", os.getpid())
   else:
      print("Processo figlio: ", os.getpid())
# Codice del driver
parentchild()

Risultato di output

Processo padre: 8023
Processo figlio: 8024
$

Il modulo di utilità di terminale virtuale pty è definito per gestire il concetto di terminale virtuale. Utilizzando questa funzione, possiamo avviare un altro processo o leggere o scrivere dal terminale di controllo tramite un programma.

Questo modulo è altamente orientato alla piattaforma. Dovremmo utilizzare il sistema UNIX per eseguire queste operazioni.

Codice di esempio

import pty, os
   def process_parent_child():
      (process_id, fd) = pty.fork()
   print("L'ID del processo del processo corrente è: " + str(os.getpid()))
   print("L'ID del processo del processo figlio è: " + str(process_id))
process_parent_child()

Risultato di output

L'ID del processo del processo corrente è: 12508
L'ID del processo del processo figlio è: 12509