Cómo realizar programación multiproceso de Python y comprender el subproceso múltiple de Python en un artículo
Este artículo presenta el subproceso múltiple de Python. Si desea comprender el subproceso múltiple de Python, primero debe comprender qué es un subproceso.
El hilo es la unidad más pequeña que el sistema operativo puede realizar en la programación de operaciones. Está incluido en el proceso y es la unidad operativa real en el proceso. Un subproceso se refiere a un único flujo de control secuencial en un proceso. Se pueden ejecutar varios subprocesos al mismo tiempo en un proceso y cada subproceso realiza diferentes tareas en paralelo.
El subproceso múltiple es similar a ejecutar varios programas diferentes al mismo tiempo. El subproceso múltiple tiene las siguientes ventajas:
1. el trasfondo a tratar.
2. La interfaz de usuario puede ser más atractiva, de modo que si el usuario hace clic en un botón para activar el procesamiento de ciertos eventos, puede aparecer una barra de progreso para mostrar el progreso del proceso.
El programa puede acelerar la velocidad de ejecución
3. Los subprocesos son más útiles para implementar algunas tareas en espera, como la entrada del usuario, la lectura y escritura de archivos y el envío y recepción de datos en la red. En este caso, podemos liberar algunos recursos valiosos, como el uso de memoria, etc.
4. Existen diferencias entre subprocesos y procesos durante la ejecución. Cada hilo independiente tiene un punto de entrada para la ejecución del programa, una secuencia de ejecución secuencial y un punto de salida para el programa. Sin embargo, los subprocesos no se pueden ejecutar de forma independiente y deben existir en el programa de aplicación, y el programa de aplicación proporciona control de ejecución de múltiples subprocesos.
Cada hilo tiene su propio conjunto de registros de CPU, llamado contexto del hilo, que refleja el estado de los registros de la CPU del último hilo ejecutado.
El puntero de instrucción y el registro de puntero de pila son los dos registros más importantes en el contexto del subproceso. El subproceso siempre se ejecuta en el contexto del proceso. Estas direcciones se utilizan para marcar la memoria en el espacio de direcciones del proceso. es dueño del hilo.
5. Los hilos se pueden adelantar (interrumpir).
6. Un subproceso se puede poner temporalmente en espera (también llamado suspensión) mientras otros subprocesos se están ejecutando; esta es la retirada del subproceso.
Empiece a aprender multiproceso de Python
Hay dos formas de utilizar subprocesos en Python: funciones o clases para envolver objetos de subprocesos.
Funcional: Llame a la función start_new_thread() en el módulo de hilo para generar un nuevo hilo. La sintaxis es la siguiente:
thread.start_new_thread (función, args[, kwargs]) Descripción del parámetro:
1.function - función de hilo.
2.args: los parámetros pasados a la función del hilo, deben ser de tipo tupla.
3.kwargs: parámetros opcionales.
Adjunte un ejemplo
#!/usr/bin/python
# -*- codificación: UTF-8 -*-
importar hilo
importar tiempo
# Definir una función para el hilo
def print_time( threadName, delay):
count = 0
mientras cuenta < 5:
tiempo.dormir(retraso)
cuenta += 1
imprimir "%s: % s " % ( threadName, time.ctime(time.time()) )
# Crea dos hilos
intenta:
thread.start_new_thread( print_time, ("Thread-1", 2, ) )
thread.start_new_thread( print_time, ("Thread-2", 4, ) )
excepto:
imprimir "Error: no se puede iniciar el subproceso"
mientras 1:
El resultado de pasar el programa anterior es el siguiente:
Subproceso-1: Jue 22 de enero 15:42:17 2009
Subproceso 1: Jue 22 de enero 15:42:19 2009
Subproceso 2: Jue 22 de enero 15:42:19 2009
Subproceso-1: jueves 22 de enero 15:42:21 2009
Subproceso-2: jueves 22 de enero 15:42:23 2009
Subproceso-1: Jue 22 de enero 15:42:23 2009
Subproceso 1: Jue 22 de enero 15:42:25 2009
Subproceso 2: Jue 22 de enero 15:42:27 2009
Subproceso 2: jueves 22 de enero 15:42:31 2009
Subproceso 2: jueves 22 de enero 15:42:35 2009 El final de un hilo generalmente se basa en el extremo natural de la función del hilo; también se puede hacer en el hilo. Cuando se llama a thread.exit() en la función, lanza una excepción SystemExit para lograr el propósito de salir del hilo.