Unión de subprocesos de Python

Un subproceso debe usar la función join() cuando quiere esperar otro método que requiera que el segundo subproceso espere a que se complete el primero. Usando un objeto Thread, llamamos al método Join usando los objetos Thread importando el módulo de hilos de Python, ya que es necesario para crear hilos.

Cómo implementar la combinación de hilos de Python en un script

En este ejemplo, usamos el método thread.join() de Python para unir dos hilos. Un subproceso es un flujo de procesamiento único. Esto significa que habrá dos eventos simultáneos en su programa. Sin embargo, la mayoría de las implementaciones de Python solo dan la impresión de ejecutar varios subprocesos al mismo tiempo. Una de las principales ventajas del uso de subprocesos es que una aplicación multiproceso funciona en un sistema de procesador monoprocesador mientras utiliza automáticamente un sistema multiprocesador sin necesidad de volver a compilar. La programación con muchos hilos separados ayuda a implementar algoritmos paralelos. El método join() de la clase Thread permite que un hilo se retrase hasta que otro hilo haya terminado de ejecutarse. Cuando se llama a thread.join(), se asegura de que se detenga incluso antes de que el programa ejecute la siguiente declaración: si es una instancia de hilo cuyo hilo se está ejecutando actualmente. Comencemos a implementar el script en la herramienta Spyder implementando el código. Una gran herramienta para compilar código Python es Spyder. Spyder presenta una ejecución de programa dinámica que le brinda nuevas habilidades para la resolución de problemas. También se puede utilizar para crear análisis de información y lograr objetivos de gestión de datos. Para iniciar el código, la primera línea importa el módulo de subprocesamiento. En la siguiente línea, se crea un método con el identificador «func1». Los métodos personalizados simples son técnicas que puede usar para organizar su script dentro del cuerpo de un programa. Aquí diseñamos uno. Una vez definida, una función se puede usar de manera similar a como se usan las acciones construidas y los procesos de análisis. Las variables se envían por referencia a funciones en lugar de por valor. Las variables «dividendo» y «divisor» se pasaron como parámetros a «func1» entre paréntesis. Luego, la declaración se imprimió en la siguiente línea usando la función print(). La función print() muestra el mensaje en la pantalla u otro dispositivo de salida común. El objeto se convierte en una cadena antes de que se muestre en el monitor, y la frase puede ser una cadena o tal vez algún otro elemento. La sentencia «let start» se pasa a la función «print()» y se aplica una condición «if» para determinar si el dividendo dividido por el divisor es igual a «cero», en este caso print «true» o si print «falso». La palabra «fin» se pasa luego cuando llamamos de nuevo al método «imprimir()». Luego, en la siguiente línea, usamos threading.thread para crear dos hilos. Dentro de sus paréntesis, ejecutamos la función y al mismo tiempo pasamos los valores del dividendo y el divisor, es decir, «15» y «3», como sus parámetros. La siguiente línea procede de manera similar, esta vez la función se ejecuta con un hilo y los valores «21» y «2» para el dividendo y el divisor se le pasan como argumentos. El primer subproceso se mantiene en la variable «Subproceso 1», mientras que el segundo subproceso se mantiene en la variable inicializada «Subproceso 2». La siguiente línea usa el método start() y el subproceso 1 para comenzar a ejecutar el subproceso. El sistema operativo inicia el proceso en un nuevo subproceso lo antes posible, luego de lo cual el método start() regresa inmediatamente. Luego se llaman «join()» y «thread 1». De la misma manera, repetimos el proceso, llamando a las funciones «start()» y «join()» con «thread 2».

Un subproceso utiliza la técnica «join()» para esperar a otro subproceso. Así que el primer hilo está terminado. Comencemos a imprimir primero, y luego apareció «verdadero» porque se cumplió la condición del primer hilo. La respuesta es 0 cuando dividimos 15 por 3. Por lo tanto, se muestra «verdadero» antes de agregar la declaración «fin» impresa, lo que significa que el primer hilo ha terminado. Entonces se vio el segundo hilo. El segundo hilo luego terminó mostrando false porque no se cumplieron los criterios y las respuestas a los números dados no eran cero.

Aquí hay otro ejemplo de subprocesamiento usando la función threads.join() y el método time.sleep(). En el primer paso, se importan las dos bibliotecas de Python. Debido a que este código usa el método time.sleep(), la primera importación es para el módulo de subprocesos, mientras que la segunda importación es para el módulo de tiempo. La técnica de Python «time.sleep()» se utiliza para esperar a que se ejecute un programa. El método sleep() de Python se puede usar para pausar el rendimiento de un programa durante un período de tiempo específico, especificado en segundos. Comprenda que la técnica de Python «time.sleep()» solo mata el hilo actual, no todo el programa. Se definen dos funciones. La primera función en este script, func1, se usa para almacenar dos sentencias de impresión usando la función print(). La primera declaración que emitimos con la declaración de impresión es «subproceso de inicio 1». Luego, en la siguiente línea, usamos la función «dormir ()» con el módulo de tiempo para establecer el tiempo en «20» segundos. Luego llamamos a otra declaración con la función print(): «El subproceso 1 está terminado». Luego creamos una segunda función, func2, y le pasamos dos declaraciones. La primera instrucción que queremos imprimir es «Iniciar subproceso 2». En la siguiente línea, establecemos los intervalos de tiempo en segundos a «4» usando el método «time.sleep()». Luego usamos la función print() para imprimir la declaración «Thread 2 is added». Ahora que hemos construido la función, creemos dos subprocesos y usemos el módulo de subprocesos para invocar la función, pero antes de eso, mostremos primero la declaración de inicio. La primera función «func1» ahora se llama a través de un hilo y se almacena en la variable recién creada «t1». Luego, «func2» se llama a través de un hilo y se escribe en la variable «t2». Luego, en la siguiente línea, llamamos a la función start() con los subprocesos t1 y t2 para iniciar la ejecución. Luego, antes de emitir la declaración de finalización, usamos el método time.sleep() para configurar el temporizador en dos segundos. Finalmente, llamamos a la función join() con t2 y usamos el método time.sleep().

Ahora, la salida mostró primero el inicio de la declaración de impresión, luego, dado que llamamos a func1 con el subproceso, fue a func1 e imprimió la declaración «subproceso de inicio 1». Cuando configuramos el tiempo en «20» antes de imprimir la segunda declaración, el sistema se durmió durante «20» segundos. Luego vino el segundo func2, que emitió su instrucción «Starting Thread 2». Y usamos «time.sleep()» antes de imprimir su declaración terminada, el sistema se durmió durante «4» segundos. Debido a que el intervalo de tiempo entre las declaraciones «func2» es menor que las declaraciones finales «func1», la declaración final «func2» que dice «el subproceso 2 está terminado» ahora se emite antes que la declaración final «func1» que es «subproceso 1». «completado».

Conclusión

En este artículo, se usaron dos hilos para discutir la técnica Python thread.join(). En el ejemplo anterior, construimos una función, la llamamos usando la función con el módulo de subprocesos y usamos los subprocesos para llamar al método join(). Este procedimiento «join()» espera a que termine el primer subproceso antes de iniciar la ejecución del segundo subproceso. En el ejemplo anterior, también usamos time.sleep() para retrasar la ejecución de declaraciones.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.