Comunicación entre el proceso padre e hijo usando tubería en Python

Requisito previo: crear un proceso secundario en Python
Como hay muchos procesos que se ejecutan simultáneamente en la computadora, es muy necesario tener una comunicación adecuada entre ellos, ya que un proceso puede depender de otros procesos. Existen varios métodos para comunicarse entre procesos. Aquí hay un programa de Python simple para demostrar la comunicación entre el proceso principal y el proceso secundario utilizando el método de canalización.

Biblioteca utilizada:
módulo del sistema operativo en Python: el módulo del sistema operativo en Python proporciona una forma de utilizar la funcionalidad dependiente del sistema operativo. Las funciones que proporciona el módulo del sistema operativo le permiten interactuar con el sistema operativo subyacente en el que se ejecuta Python; ya sea Windows, Mac o Linux. Se puede importar como –

import os

Llamada al sistema utilizada:
tubería() Llamada al sistema: el método tubería() crea una tubería y devuelve un par de descriptores de archivo (r, w) que se pueden usar para leer y escribir, respectivamente. Este método devuelve un par de descriptores de archivo.

Sintaxis – La siguiente es la sintaxis para el método pipe() –

os.pipe()

Nota: la tubería es una comunicación unidireccional, es decir, podemos usar una tubería de modo que un proceso escriba en la tubería y el otro proceso lea desde la tubería.

# Python code to demonstrate communication
# between parent and child process using 
# python.
  
import os
  
def communication(child_writes):
    # file descriptors r, w for reading and writing
    r, w = os.pipe()
      
    #Creating child process using fork
    processid = os.fork()
    if processid:
        # This is the parent process
        # Closes file descriptor w
        os.close(w)
        r = os.fdopen(r)
        print ("Parent reading")
        str = r.read()
        print( "Parent reads =", str)
    else:
        # This is the child process
        os.close(r)
        w = os.fdopen(w, 'w')
        print ("Child writing")
        w.write(child_writes)
        print("Child writes = ",child_writes)
        w.close()
          
# Driver code        
child_writes = "Hello geeks"
communication(child_writes)
  
# Contributed by "Sharad_Bhardwaj".

Producción :

Child writing
Child writes =  Hello geeks
Parent reading
Parent reads = Hello geeks

Publicación traducida automáticamente

Artículo escrito por Sharad_Bhardwaj y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *