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