Multiprocesamiento de Python para bucle

Multiprocesamiento de Python para bucle

El multiprocesamiento es comparable al múltiplo. Sin embargo, se diferencia en el sentido de que solo podemos ejecutar un hilo en un momento debido al GIL que se emplea para enhebrar. El multiprocesamiento es el proceso de realizar operaciones secuencialmente en varios núcleos de CPU. Los hilos no se pueden operar en paralelo. Sin embargo, el multiprocesamiento nos permite establecer los procesos y ejecutarlos simultáneamente en varios núcleos de CPU. El bucle, como el for-bucle, es uno de los idiomas de secuencias de comandos más utilizados. Repita el mismo trabajo utilizando varios datos hasta que se alcance un criterio, como un número predeterminado de iteraciones. El bucle logra cada iteración uno por uno.

Ejemplo 1: Utilizando el bucle for-loop en el módulo de multiprocesamiento de Python

En este ejemplo, usamos el proceso de módulo de multiprocesamiento For-loop y Python. Comenzamos con un ejemplo muy sencillo para que pueda comprender rápidamente cómo funciona el multiprocesamiento de Python para el bucle. Usando una interfaz que es comparable al módulo de subproceso, el multiprocesamiento incluye la creación de procesos.

Al emplear los subprocesos en lugar de los hilos, el paquete de multiprocesamiento proporciona concurrencia local y distante, evitando así el bloqueo de intérprete global. Use un for-bucle, que puede ser un objeto de cadena o una tupla, para iterar continuamente a través de una secuencia. Esto funciona menos como la palabra clave que se ve en otros lenguajes de programación y más como un método iterador que se encuentra en otros lenguajes de programación. Al comenzar un nuevo multiprocesamiento, puede ejecutar un for-bucle que ejecute un procedimiento simultáneamente.

Comencemos implementando el código para la ejecución del código utilizando la herramienta "Spyder". Creemos que "Spyder" es también el mejor para ejecutar Python. Importamos un proceso de módulo de multiprocesamiento que el código está ejecutando. El multiprocesamiento en el concepto de Python denominado "clase de proceso" crea un nuevo proceso de Python, le da un método para ejecutar código y le da a la aplicación principal una forma de administrar la ejecución. La clase de proceso contiene los procedimientos inicial () y unir (), los cuales son cruciales.

A continuación, definimos una función definida por el usuario llamada "FUNC". Dado que es una función definida por el usuario, le damos un nombre de nuestra elección. Dentro del cuerpo de esta función, pasamos la variable de "asignatura" como argumento y el valor de "matemáticas". A continuación, llamamos a la función "print ()", pasando la declaración "el nombre del sujeto común es", así como su argumento "sujeto" que contiene el valor. Luego, en el siguiente paso, utilizamos el "if name == _main_", que evita que ejecute el código cuando el archivo se importa como un módulo y solo le permite hacerlo cuando el contenido se ejecuta como un script.

La sección de condición con la que comienza puede considerarse en la mayoría de las circunstancias como una ubicación para proporcionar el contenido que solo debe ejecutarse cuando su archivo se ejecuta como un script. Luego, utilizamos el tema del argumento y almacenamos algunos valores que son "ciencia", "inglés" y "computadora". El proceso recibe el nombre del nombre "Process1 []" en el siguiente paso. Luego, usamos el "proceso (target = func)" para llamar a la función en el proceso. El objetivo se utiliza para llamar a la función, y guardamos este proceso en la variable "P".

A continuación, usamos la función "Process1" para llamar a la función "append ()" que agrega un elemento al final de la lista que tenemos en la función "FUNC."Debido a que el proceso se almacena en la variable" P ", pasamos" P "a esta función como su argumento. Finalmente, usamos la función "inicio ()" con "P" para iniciar el proceso. Después de eso, ejecutamos el método nuevamente mientras proporcionamos el argumento de "sujeto" y usamos "para" en el tema. Luego, utilizando el método "Process1" y "add ()" una vez más, comenzamos el proceso. Luego se ejecuta el proceso y se devuelve la salida. Luego se le dice al procedimiento que termine utilizando la técnica "unir ()". Los procesos que no llaman al procedimiento "unir ()" no saldrán. Un punto crucial es que el parámetro de palabra clave "args" debe usarse si desea proporcionar algún argumento a través del proceso.


Ahora, puede ver en la salida que la declaración se muestra primero pasando el valor de la asignatura de "matemáticas" que pasamos a la función "func" porque primero la llamamos usando la función "proceso". Luego, usamos el comando "append ()" para tener valores que ya estaban en la lista que se agrega al final. Entonces, "ciencia", "computadora" e "inglés" se presentaron. Pero, como puede ver, los valores no están en la secuencia correcta. Esto se debe a que lo hacen tan rápido como se termina el procedimiento e informa su mensaje.

Ejemplo 2: Conversión de bucle secuencial en bucle en multiprocesamiento paralelo para el bucle

En este ejemplo, la tarea de bucle de multiprocesamiento se ejecuta secuencialmente antes de convertirse en una tarea paralela de bucle. Puede recorrer secuencias como una colección o una cadena en el orden en que ocurren usando los bucles for-loops.

Ahora, comencemos a implementar el código. Primero, importamos "Dormir" desde el módulo de tiempo. Usando el procedimiento "Sleep ()" en el módulo de tiempo, puede suspender la ejecución del hilo de llamadas durante el tiempo que desee. Luego, usamos "aleatorio" del módulo aleatorio, definimos una función con el nombre "func" y pasamos la palabra clave "argumento". Luego, creamos un valor aleatorio usando "val" y lo establecemos en "aleatorio". Luego, bloqueamos un pequeño período usando el método "Sleep ()" y pasamos "Val" como parámetro. Luego, para transmitir un mensaje, ejecutamos el método "print ()", pasando las palabras "Ready" y la palabra clave "Arg" como su parámetro, así como "creado" y pasamos el valor usando "Val".

Finalmente, utilizamos "Flush" y lo establecemos en "verdadero". El usuario puede decidir si buffer o no la salida utilizando la opción FLUSH en la función de impresión de Python. El valor predeterminado de este parámetro de falso indica que la salida no se amortiguará. La salida se muestra como una serie de líneas que se siguen si la establece en verdad. Luego, usamos el "if name == main" para asegurar los puntos de entrada. A continuación, ejecutamos el trabajo secuencialmente. Aquí, establecemos el rango en "10", lo que significa que el bucle termina después de 10 iteraciones. A continuación, llamamos a la función "print ()", la pasamos la declaración de entrada "Ready" y usamos la opción "Flush = True".


Ahora puede ver que cuando ejecutamos el código, el bucle hace que la función ejecute "10" veces. Se itera a través de 10 veces, comenzando en el índice cero y terminando en el índice nueve. Cada mensaje contiene un número de tarea que es un número de función que transmitimos como un "arg" y un número de creación.


Este bucle secuencial ahora se está transformando en un bucle paralelo de multiprocesamiento. Usamos el mismo código, pero vamos a algunas bibliotecas y funciones adicionales para el multiprocesamiento. Por lo tanto, debemos importar el proceso desde el multiprocesamiento, tal como explicamos anteriormente. A continuación, creamos una función llamada "func" y pasamos la palabra clave "arg" antes de usar "val = aleation" para obtener un número aleatorio.

Luego, después de invocar el método "print ()" para mostrar un mensaje y dar el parámetro "Val" para retrasar un pequeño período, utilizamos la función "if name = main" para asegurar los puntos de entrada. Con lo cual, creamos un proceso y llamamos a la función en el proceso utilizando "proceso" y pasamos el "target = func". Luego, pasamos el "func", "arg", pasamos el valor "m" y pasando el rango "10", lo que significa que el bucle termina la función después de "10" iteraciones. Luego, iniciamos el proceso utilizando el método "start ()" con "proceso". Luego, llamamos al método "unir ()" para esperar la ejecución del proceso y completar todo el proceso después de.


Por lo tanto, cuando ejecutamos el código, las funciones llaman al proceso principal y comenzan su ejecución. Sin embargo, se realizan hasta que se realicen todas las tareas. Podemos ver eso porque cada tarea se lleva a cabo simultáneamente. Informa su mensaje tan pronto como esté terminado. Esto significa que aunque los mensajes están fuera de servicio, el bucle termina después de todas las iteraciones "10" se completan.

Conclusión

Cubrimos el bucle de multiprocesamiento de Python en este artículo. También presentamos dos ilustraciones. La primera ilustración muestra cómo utilizar un for-bucle en la biblioteca de multiprocesamiento de bucle de Python. Y la segunda ilustración muestra cómo cambiar un bucle secuencial en un bucle de multiprocesamiento paralelo. Antes de construir el script para el multiprocesamiento de pitón, debemos importar el módulo de multiprocesamiento.