Tecnología

Inicio

Procesos en Python

En la terminología de la informática, un proceso es una instancia en ejecución de un programa en la memoria del ordenador. Estos procesos en memoria también pueden generar otros procesos. El lenguaje de programación Python, al igual que otros idiomas adecuados para el desarrollo de software de escritorio, ofrece una biblioteca para facilitar la creación y el mantenimiento de los procesos en un sistema informático.

procesos

Cuando un usuario inicia una aplicación como un navegador Web, la aplicación se convierte en un proceso que se ejecuta en el sistema operativo. Antes de la ejecución, un programa simplemente como datos reside en el disco duro. Cuando se ejecuta, el sistema operativo carga el programa en la memoria principal o RAM. Todas las aplicaciones que se ejecutan se les da el espacio en la memoria RAM del sistema operativo mientras se ejecutan. Mientras se ejecuta, el sistema operativo controla los procesos de aplicación a través de una tabla de procesos que describe el estado del proceso y en el que reside en la memoria.

Los procesos de desove

Los procesos pueden generar otros procesos destinados a realizar un trabajo concurrente durante la ejecución del programa. Este "multi" permite que los programas para manejar muchas tareas diferentes al mismo tiempo. Un programa en Python, por ejemplo, puede generar un proceso separado usando la biblioteca "multi" y su objeto "Proceso", como en el siguiente ejemplo:

de multiprocesamiento proceso de importación

import os

hola def ():

print ( "Hola")

p = Proceso (target = hola)

p.start () // inicia proceso hijo "p"

Procesos que hacen el trabajo

Un proceso hijo, dada una cierta tarea, llevará a cabo esa tarea, mientras que el proceso padre lleva a cabo su propia tarea. En el siguiente ejemplo, un programa de Python genera un proceso, y tanto el proceso padre y el proceso hijo llamar al mismo método "os.getpid ()", que devuelve el identificador numérico del proceso actual:

def PID ():

print ( 'Soy proceso:', os.getpid ())

p = Proceso (target = PID)

p.start ()

print ( 'Soy proceso:', os.getpid ())

p.join () // termina el proceso de 'p'

La salida de estos dos procesos es la siguiente. Tenga en cuenta que el comando de los padres "imprimir" con el "proceso" minúscula normalmente se ejecuta en primer lugar.

Soy proceso: 57883

Soy proceso: 57884

El intercambio de datos entre procesos

Dos procesos también pueden compartir datos entre sí con un objeto "tubo" que crea una conexión entre los dos procesos. El uso de estos objetos de conexión, un proceso hijo puede enviar datos a un proceso padre, lo que permite que el proceso padre para manipular o imprimir los datos guardados. El siguiente ejemplo muestra el uso del objeto de la tubería:

def enviar (niño):

child.send ([1, 2, 3]) // el proceso hijo envía los datos al ejecutar

child.close ()

si el nombre == 'principal':

parent, child = Pipe()

p = Proceso (target = f, args = (infantil,))

p.start ()

parent.recv de impresión () // proceso padre recibe los datos del niño

p.join