Red de conocimiento del abogados - Ley de patentes - La diferencia entre los subprocesos de Golang y las corrutinas

La diferencia entre los subprocesos de Golang y las corrutinas

Subprocesos:

Los subprocesos múltiples sirven para resolver el problema de la utilización de la CPU y los subprocesos reducen el costo del cambio de contexto. No existe una diferencia esencial entre procesos y subprocesos en Linux. La mayor diferencia es que el proceso tiene su propio espacio de memoria independiente, mientras que los subprocesos comparten el espacio de memoria.

Durante el cambio de proceso, es necesario convertir el espacio de direcciones de memoria, pero el cambio de subprocesos no tiene esta acción, por lo que el cambio de subprocesos es mucho menos costoso que el cambio de procesos.

Corrutina:

Si queremos simplicidad y alto rendimiento, la corrutina puede lograr nuestro objetivo. Desde la perspectiva del usuario, el sistema operativo no tiene este concepto. La idea principal es implementar el algoritmo de programación en modo de usuario y utilizar una pequeña cantidad de subprocesos para completar la programación de una gran cantidad de tareas.

Goroutine es una corrutina implementada en el lenguaje GO. Tiene soporte a nivel de lenguaje y es muy conveniente de usar. Su núcleo es el modelo de programación MPG: M es el hilo del núcleo, que es el procesador. se utiliza para ejecutar Goroutine, que mantiene la cola ejecutable local; G es Goroutine, el código y la estructura de datos S y el programador mantienen la información de M y P;