Introducción a goroutine-Basic
Introducción al proceso y al hilo
Diagrama esquemático de la relación entre programas, procesos e hilos.
Concurrencia y paralelismo
1) Los programas multiproceso se ejecutan en un solo núcleo, que es concurrente
2) Los programas multiproceso se ejecutan en múltiples núcleos, que es paralelo
3) Diagrama esquemático:
Resumen:
Ir corutina e ir hilo principal
Ir a hilo principal (algunos programadores lo llaman directamente un hilo / también puede entenderse como un proceso): un hilo Go puede tener múltiples rutinas. Puedes entender esto como una rutina es un hilo ligero [el compilador hace la optimización] .
Características de las corutinas Go
1) Espacio de pila independiente
2) Espacio de almacenamiento dinámico del programa compartido
3) La programación es controlada por el usuario
4) Las rutinas son hilos ligeros
Diagrama esquemático
Descripción del caso de inicio rápido de goroutine
Escriba un programa para completar las siguientes funciones:
1) En el hilo principal (puede entenderse como un proceso), inicie una rutina de rutina, la rutina sale "hola, mundo" cada 1 segundo
2) En el principal El hilo también emite "hola, golang" cada segundo. Después de salir 10 veces, salga del programa.
3) Requerir que el hilo principal y la rutina se ejecuten al mismo tiempo.
4) Dibujar el diagrama principal y el diagrama de flujo de ejecución de la rutina
El efecto de la salida muestra que el hilo principal principal y la rutina de prueba se ejecutan simultáneamente.
Diagrama principal y diagrama de flujo de ejecución de rutina
Resumen de inicio rápido
1) El hilo principal es un hilo físico que actúa directamente en la CPU. Es de peso pesado y consume muchos recursos de la CPU.
2) La rutina comenzada desde el hilo principal es un hilo ligero y es un estado lógico. El consumo de recursos es relativamente pequeño.
3) El mecanismo de corutina de Golang es una característica importante, que puede abrir fácilmente decenas de miles de corutinas. El mecanismo de concurrencia de otros lenguajes de programación generalmente se basa en subprocesos. Se abren demasiados subprocesos, lo que consume muchos recursos. Aquí se destacan las ventajas de Golang en concurrencia.
Una
introducción básica al modelo MPG del modelo de programación gorutina
Estado de funcionamiento del modo MPG 1
Estado de funcionamiento del modo MPG 2