1. Qué hilo, qué proceso
1. Proceso
Es la integración de los recursos. Un programa es un proceso para el sistema operativo, como abrir un navegador, abrir una palabra, etc., todos están abriendo un proceso.
2. Hilo
Es un programa que la mayoría de las pequeñas unidades de ejecución . Ayuda al proceso a trabajar, los hilos son independientes entre sí
El subprocesamiento múltiple se usa para manejar escrituras y lecturas frecuentes de tareas intensivas en IO. La CPU es responsable de la programación y consume espacio en disco
3. Los hilos están contenidos en un proceso, un proceso puede tener múltiples hilos
4. Hay un hilo en un proceso por defecto
5. Subproceso principal y subproceso, un programa tiene un subproceso principal de forma predeterminada y el subproceso principal inicia el subproceso
Módulo de importación
subprocesos de importación
Forma tradicional (hilo único)
def down_load (): time.sleep ( 5 ) print ( ' 运行 完成' ) para i en el rango (3 ): down_load ()
Multihilo
para I en Rango (3. ): T = de la threading.Thread (target = down_load ) # instantiate un hilo t.Start () # carreras
No traiga down_load (), de lo contrario, pertenece a sí mismo y los
hilos son independientes
= T1 la time.time ()
para I en Rango (3. ):
T = de la threading.Thread (target = down_load) # instantiate un hilo
t.Start () # comienza a funcionar
de impresión ( ' runtime ' , la time.time () -t1)
El código anterior tiene un total de 4 subprocesos, 3 subprocesos se inician en el bucle y hay un subproceso principal en ejecución, por lo que los resultados son los siguientes
El subproceso principal se ejecuta para finalizar el tiempo de ejecución de impresión y luego espera a que finalice el subproceso secundario
El tiempo de ejecución ,0009999275207519531
ejecución es completa
ejecución es completa
ejecución es completa
Ver el número actual de subprocesos y subprocesos
Imprimir (threading.active_count ()) # Discusiones de impresión (threading.current_thread ()) # Ver el hilo actual
El subproceso principal espera a que finalice el subproceso secundario (paralelo)
DEF down_load (): el time.sleep ( 5. ) Imprimir ( ' se termina de ejecutar ' ) # multiproceso T1 = el time.time () para que en el alcance (3. ): T = del threading.Thread (target = down_load) t.Start ( ) # t.join () # esto no es un árbol de estructura paralela # t.join () # aquí esperando el final del último hilo del tiempo al tiempo threading.activeCount () = 1 :! # principales hilo espera para el extremo del hilo niño pasar