1. Mecanismo de manejo de excepciones
2. Multiproceso
Introducir archivos de biblioteca multiproceso: importar multiprocesamiento
Para las pruebas multiproceso, debe probar en la función principal principal para
crear una clase de proceso: Proceso ([grupo [, destino [, nombre [, args [, kwargs]]]]]]), destino representa el objeto que llama y args representa el objeto que llama Tupla de parámetros posicionales. kwargs representa un diccionario de objetos de llamada. El nombre es un alias. El grupo esencialmente no se usa.
Métodos: is_alive (), join ([timeout]), run (), start (), terminate (). Entre ellos, Process inicia un proceso con start ().
Atributos: authkey, daemon (se establecerá mediante start ()), código de salida (el proceso es Ninguno en tiempo de ejecución, si es –N, significa que finaliza con la señal N), nombre, pid El daemon finaliza automáticamente después de que finaliza el proceso principal, y no puede crear un nuevo proceso por sí mismo, debe establecerse antes de start ()
Daemon es un proceso de daemon: el daemon finaliza automáticamente después de que finaliza el proceso principal, y no puede crear un nuevo proceso por sí mismo, debe establecerse antes de start (). # Después de que se complete la ejecución del subproceso principal, independientemente de si se completa la ejecución del subproceso secundario, finalizará con el subproceso principal.
Salida:
Al usar múltiples procesos para acceder a recursos compartidos, debe usar Bloquear para evitar conflictos de acceso
Salida:
Grupo de procesos
Cuando el grupo de procesos
usa Python para la administración del sistema, especialmente cuando se operan múltiples directorios de archivos al mismo tiempo, o se controlan de manera remota múltiples hosts, la operación en paralelo puede ahorrar mucho tiempo. Cuando el número de objetos que se operan no es grande, puede usar directamente el Proceso en multiprocesamiento para generar dinámicamente múltiples procesos, una docena más o menos, pero si son cientos o miles de objetivos, es demasiado para limitar manualmente el número de procesos. Si es demasiado engorroso,
puede desempeñar el papel del grupo de procesos en este momento. El grupo puede proporcionar un número específico de procesos para que los usuarios llamen. Cuando se envía una nueva solicitud al grupo, si el grupo no está lleno, se creará un nuevo proceso para ejecutar la solicitud; pero si el número de procesos en el grupo Ha alcanzado el máximo especificado,
entonces la solicitud esperará, hasta que finalice un proceso en el grupo, no creará un nuevo proceso para él.
apply_async (func [, args [, kwds [, callback]]]) no es bloqueante, apply (func [, args [, kwds]]) es bloqueante
Grupo de proceso de bloqueo y no bloqueo
Una sola función utiliza un grupo de subprocesos:
Salida:
Grupo de subprocesos para múltiples funciones
Usando la función get (), también puede obtener la estructura de datos de los pandas;
Resultado de salida:
3. Módulo QTimer en PyQt5
La aplicación de subprocesos múltiples en pyqt5, la tecnología de subprocesos múltiples incluye 3 métodos: 1. Usar el temporizador QTimer, 2. Usar el módulo de subprocesos múltiples QThread, 3. Usar la función de procesamiento de eventos
1. Usar el módulo QTimer, crear una instancia de QTimer, la señal de tiempo de espera Conéctese a la función de ranura y llame a la señal de tiempo de espera. El tiempo self.timer.start (1000) se
introduce en milisegundos
desde PyQt5.QtCore import QTimer, QDateTime
Módulo QThread, use este módulo para iniciar un hilo, puede crear una subclase de él y luego anular el método QThread.run (). Al llamar a un subproceso personalizado, al llamar al método start () se llamará automáticamente al método de ejecución.
QThread también tiene señales de inicio y finalización. Puede ver que la señal está conectada a la función de ranura
demo 2 :
Referencia:
Multiproceso https://www.cnblogs.com/kaituorensheng/p/4445418.html