Golang-goroutine / canal

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

  

 

Supongo que te gusta

Origin www.cnblogs.com/Essaycode/p/12729240.html
Recomendado
Clasificación