Subprocesos en Python: aprenda a trabajar con subprocesos en Python



Este artículo sobre Threading en Python le dirá qué son Threads, sus tipos, cómo iniciarlos y utilizarlos de la mejor manera posible.

Hoy, es uno de los lenguajes de programación más queridos en todo el mundo. Desde su inicio en la década de 1990, ha ganado un gran número de seguidores y entusiastas y codificadores que trabajan todos los días para mejorar este lenguaje de programación. Entre las muchas características que vienen integradas en el ecosistema de Python, una que más se destaca es Threading. Por lo tanto, en este artículo, hablaremos todo sobre Threading en Python, cómo puede usarlo junto con sus ventajas y desventajas.

En este artículo se cubrirán los siguientes consejos,





Empecemos

Subprocesamiento en Python

¿Qué es un hilo en Python?

Un hilo en Python se puede definir simplemente como un flujo de ejecución separado. Lo que esto significa simplemente es que en su programa, se ejecutarán dos procesos diferentes al mismo tiempo. Un aspecto interesante del subproceso en Python es el hecho de que, después de la versión 3, varios subprocesos en Python no se ejecutan al mismo tiempo, sino que simplemente parecen hacerlo.



Si bien es una sensación increíble ejecutar dos procesos diferentes al mismo tiempo, es necesario comprender que la versión actual de Python 3 y superior está codificada de tal manera que solo se puede ejecutar el proceso en un momento dado. Sin embargo, si necesita dos o más procesos juntos al mismo tiempo en CPython, también debe codificar parte de su código en otros lenguajes, como C, C ++ y Java, y luego ejecutarlos a través de subprocesos múltiples en Python.

Una de las ventajas más conocidas del subproceso en Python es su capacidad para proporcionar una ganancia en la claridad del diseño.

Antes de que tengamos alguna idea sobre Threading en Python, entendamos cómo iniciar un hilo,



cómo configurar la ruta de clase de Java en la línea de comandos de Linux

Comenzando un hilo en Python

Ahora que está acostumbrado a la definición de un hilo en Python, echemos un vistazo a un ejemplo sobre cómo puede crear su propio hilo en Python. Para crear un hilo en Python, primero debe importar la biblioteca de hilos y luego indicarle que comience () como se muestra en el siguiente ejemplo:

import logging import threading import time def thread_function (name): logging.info ('Thread% s: start', name) time.sleep (2) logging.info ('Thread% s: terminando', name) if __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (formato = formato, nivel = logging.INFO, datefmt = '% H:% M:% S') logging.info ( 'Main & ampampampnbsp & ampampampnbsp: antes de crear el hilo') x = threading.Thread (target = thread_function, args = (1,)) logging.info ('Main & ampampampnbsp & ampampampnbsp: antes de ejecutar el hilo') x.start () logging.info ('Main & ampampampnbsp & ampampampnbsp: espera a que termine el hilo ') # x.join () logging.info (' Main & ampampampnbsp & ampampampnbsp: todo listo ')

Salida

Salida - Subprocesamiento en Python - Edureka

Cuando ejecuta un hilo en Python, lo pasa como una función que contiene una lista de argumentos que necesita ejecutar. En el ejemplo compartido arriba, le está indicando a Python que ejecute el hilo, thread_function () y lo pase a 1 como argumento.

Cuando ejecute el programa anterior, la salida se verá así.

El siguiente fragmento de este artículo sobre 'Threading en Python' nos permite ver qué son los threads del demonio,

¿Qué son los hilos de Daemon?

En terminología técnica, el demonio se puede definir como un proceso que se ejecuta principalmente en segundo plano. Sin embargo, en Python, un hilo de demonio tiene un significado muy específico. En Python, un subproceso de demonio se cerrará en el momento en que se cierre el programa, aunque en otros lenguajes de programación seguirá ejecutándose en segundo plano. Si en un programa determinado, un subproceso no está programado como subproceso demonio, entonces el intérprete esperará a que termine su operación y luego solo apagará el intérprete.

Para comprender mejor este concepto, observe el ejemplo anterior. En la penúltima línea, el programa espera unos segundos después de haber finalizado todas sus tareas. Esto se debe a que está esperando que el hilo no demoníaco termine su operación y luego salga de la interfaz. Una vez que el hilo finaliza su operación, solo sale el programa.

Ahora modifiquemos el programa anterior y veamos qué sucede si insertamos un hilo de demonio en el código.

Nuevo código: x = threading.Thread (target = thread_function, args = (1,), daemon = True)

Cuando ejecute el programa anterior con las modificaciones realizadas, se verá así.

La diferencia entre estas dos salidas es que falta la línea final de la última. La función thread_function () no tuvo la oportunidad de completarse, porque insertamos un hilo daemon y, como pronto llegó al final, salió del programa.

Unirse a un hilo

Ahora que ha aprendido sobre el concepto de crear un hilo en Python, junto con el concepto de un hilo demoníaco, descubramos cómo puede unir hilos en Python.

Al usar la función join () en Python, puede unir dos subprocesos diferentes y también indicarle a uno que espere al otro hasta que finalice su ejecución. Esta característica a menudo será útil cuando esté codificando aplicaciones grandes y necesite que todos los procesos se ejecuten en un orden particular

La parte final de este artículo sobre 'Subprocesos en Python' le mostrará los subprocesos múltiples en funcionamiento,

Trabajar con varios subprocesos

En los ejemplos anteriores, hemos hablado sobre cómo puede trabajar con dos hilos a la vez. Pero, ¿qué pasa si en una situación determinada, necesita trabajar con varios subprocesos al mismo tiempo? Para comprender mejor la situación, consulte el siguiente ejemplo.

import logging import threading import time def thread_function (name): logging.info ('Thread% s: start', name) time.sleep (2) logging.info ('Thread% s: terminando', name) if __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') hilos = lista ( ) para el índice en el rango (3): logging.info ('Main & ampampampnbsp & ampampampnbsp: crear e iniciar el hilo% d.', index) x = threading.Thread (target = thread_function, args = (index,)) threads.append (x ) x.start () para índice, hilo en enumerate (hilos): logging.info ('Main & ampampampnbsp & ampampampnbsp: antes de unirse al hilo% d.', index) thread.join () logging.info ('Main & ampampampnbsp & ampampampnbsp: hilo% d hecho ', índice)

Salida

En el programa anterior hemos seguido el mismo procedimiento de importar la biblioteca de subprocesos, iniciar el subproceso, crear múltiples subprocesos y luego usar la función join () para combinar todos juntos y ejecutarse en un orden particular.

Cuando ejecute el programa anterior, el resultado se verá así.

Conclusión

Es una de las características más útiles de Python. Al usarlo de la manera correcta, puede hacer que todo su proceso de codificación sea mucho más fácil y eficiente. Del artículo anterior esperamos que hayas aprendido los conceptos básicos del subproceso y lo sigas utilizando en tu programación diaria.

Así que esto chicos, espero que les haya gustado este artículo.

Para obtener un conocimiento profundo de Python junto con sus diversas aplicaciones, puede para capacitación en línea en vivo con soporte 24/7 y acceso de por vida.

Tienes una pregunta para nosotros? Menciónalos en la sección de comentarios de este artículo y nos comunicaremos contigo.