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

Crear un subproceso usando fork() en Python

Nuestra tarea es crear un subproceso y usarfork()Las funciones en Python muestran los ID de proceso del proceso principal y del subproceso.

al usarfork()creará su propia copia, lo que es un aspecto muy importante de LINUX y UNIX.fork()Se aplica principalmente en entornos de múltiples hilos, lo que significa que los hilos secundarios creados desde el hilo principal repetirán la ejecución de ese hilo. Cuando ocurre un error, este método devuelve un valor negativo, para los subprocesos, devuelve 0, de lo contrario, devuelve un valor positivo, lo que significa que estamos en el proceso principal.

elfork()El módulo se puede llamar desde el módulo OS o desde el módulo de terminal de pseudoPTY. Por lo tanto, deberíamos importar os o pty.

parafork()Se utiliza para crear un proceso que no tiene parámetros y devuelve el ID del proceso. Se utilizafork()La razón principal para crear un nuevo proceso (convertirse en el subproceso del invocador). Al crear un nuevo subproceso, ambos procesos ejecutarán la siguiente instrucción.

fork()Nuestro valor de retorno puede entender que cuando se devuelve 0 significa que estamos en el proceso hijo, si se devuelve un valor positivo significa que estamos en el proceso padre y si se devuelve un valor negativo significa que ocurrió algún error.

Código de ejemplo

import os
   def parentchild():
      n = os.fork()
   if n > 0:
      print("Proceso padre: ", os.getpid())
   else:
      print("Proceso hijo: ", os.getpid())
# Código del conductor
parentchild()

Resultados de salida

Proceso padre: 8023
Proceso hijo: 8024
$

El módulo de utilidades de terminal de pseudopty se define para manejar el concepto de terminal de pseudo. Al usar esta función, podemos iniciar otro proceso o usar programas para leer o escribir desde la terminal de control.

Este módulo es altamente orientado a plataforma. Deberíamos usar el sistema UNIX para ejecutar estas operaciones.

Código de ejemplo

import pty, os
   def process_parent_child():
      (process_id, fd) = pty.fork()
   print("El ID de proceso del proceso actual es: ", + str(os.getpid()))
   print("El ID de proceso del proceso hijo es: ", + str(process_id))
process_parent_child()

Resultados de salida

El ID de proceso del proceso actual es: 12508
El ID de proceso del proceso hijo es: 12509