Red de conocimiento informático - Problemas con los teléfonos móviles - Introducción al módulo de multiprocesamiento de Python

Introducción al módulo de multiprocesamiento de Python

multiprocesamiento es un paquete que admite procesos de generación utilizando una API similar al módulo de subprocesamiento. El paquete de multiprocesamiento proporciona operaciones simultáneas tanto locales como remotas, evitando de manera efectiva el bloqueo global del intérprete mediante el uso de procesos secundarios en lugar de subprocesos. Por lo tanto, el módulo de multiprocesamiento permite a los programadores aprovechar al máximo varios procesadores en una máquina determinada. Se ejecuta tanto en Unix como en Windows.

1. multiprocesamiento.Proceso(grupo=Ninguno, destino=Ninguno, nombre=Ninguno, args=(), kwargs={}, *, daemon=Ninguno)

2. Métodos relacionados

Los resultados de salida son los siguientes:

Pool proporciona un método rápido que le da a la función la capacidad de procesar una serie de valores de entrada en paralelo y puede asignar el introducir datos en diferentes procesos para su procesamiento (paralelismo de datos). El siguiente ejemplo demuestra la práctica común de definir dichas funciones en un módulo para que los procesos secundarios puedan importar el módulo correctamente. Este ejemplo básico de paralelismo de datos utiliza Pool.

Se imprimirá en la salida estándar

Donde:

(1) p.apply(func [, args [, kwargs]]): en un grupo Ejecute func(args, kwargs) en el proceso de trabajo y devuelva el resultado. Cabe enfatizar que esta operación no ejecutará la función func en todos los procesos de trabajo del grupo. Si desea ejecutar la función func simultáneamente con diferentes parámetros, debe llamar a la función p.apply() desde diferentes hilos o usar p.apply_async()

(2) p.apply_async(func [, args [, kwargs ]]): ejecuta func(args, **kwargs) en un proceso de trabajo del grupo y devuelve el resultado. El resultado de este método es una instancia de la clase AsyncResult y la devolución de llamada es un objeto invocable que recibe parámetros de entrada. Cuando el resultado de la función está disponible, la comprensión pasa a la devolución de llamada. La devolución de llamada tiene prohibido realizar operaciones de bloqueo; de lo contrario, se recibirán los resultados de otras operaciones asincrónicas. ¡Múltiples procesos simultáneamente!

(3) p.close(): cierra el grupo de procesos para evitar más operaciones. Si todas las operaciones continúan bloqueándose, se completarán antes de que finalice el proceso de trabajo

(4) p.jion(): espere a que salgan todos los procesos de trabajo. Este método solo se puede llamar después de close() o terminar()