Go modelo de simultaneidad CSP

El modelo de concurrencia CSP de Go.

Go implementa dos formas de concurrencia. El primero es generalmente reconocido por todos: los subprocesos múltiples comparten memoria. De hecho, se trata de desarrollo multiproceso en lenguajes como Java o C. El otro es exclusivo del lenguaje Go y recomendado por el lenguaje Go: modelo de concurrencia CSP (comunicación de procesos secuenciales).

CSP es la abreviatura de Communicating Sequential Process. Se puede llamar Communicating Sequential Process en chino. Es un modelo de programación concurrente propuesto por Tony Hoare en 1977. En pocas palabras, el modelo CSP consta de entidades que se ejecutan simultáneamente (hilos o procesos). Las entidades se comunican mediante el envío de mensajes. El canal utilizado al enviar mensajes es un canal o canal. La clave del modelo CSP es centrarse en el canal, no en la entidad que envía el mensaje. El lenguaje Go implementa parte de la teoría CSP.

"No se comunique compartiendo memoria. Al contrario, comparta la memoria a través de la comunicación".

El modelo de concurrencia CSP de Go se implementa a través de goroutine y Channel.

Goroutine es la unidad de ejecución concurrente en el lenguaje Go. De hecho, es una corrutina.

El canal es el mecanismo de comunicación antes de cada estructura concurrente (gorrutina) en el lenguaje Go. En términos simples, es la "canalización" para la comunicación entre gorutinas, que es algo similar a las canalizaciones en Linux.

Canal

Goroutine